Mam sekcję w szablonie strony w utworzonym przeze mnie motywie, która wyświetla zawartość na podstawie strony wybranej przez użytkownika w dostosowywaniu za pomocą kontrolki rozwijanych stron. W tej chwili używa tylko standardowego domyślnego transportu odświeżania, ale ponieważ jest to trochę niezgrabne przeładowywanie całej ramki iframe, zastanawiałem się, czy można użyć nowej funkcji selektywnego odświeżania. Ale nie jestem pewien, jak to zaimplementować. Czy ktoś wie, czy jest to możliwe, a jeśli tak, to jak to zrobić?
Oto kod w moim szablonie strony, który wyświetla treść:
<?php if ((get_theme_mod( 'intro_page' )) != '') {
$intro_id = get_theme_mod( 'intro_page' );
$intro_header = get_the_title( $intro_id );
$intro_excerpt = get_the_excerpt( $intro_id );
$intro_link = get_the_permalink( $intro_id );
$intro_linktext = get_post_meta( $intro_id, 'emm_cta_text', true );
echo '<h1>' . esc_html($intro_header) . '</h1>' . '<p>' . esc_html($intro_excerpt) . '</p>';
if( ! get_post_meta( $intro_id, 'emm_cta_text', true ) ) {
echo '<p><a class="cta" href="' . esc_url($intro_link) . '">Learn More</a></p>';
}else{
echo '<p><a class="cta" href="' . esc_url($intro_link) . '">' . esc_html($intro_linktext) . '</a></p>';
}
} ?>
Oto kod ustawienia w personalizatorze:
$wp_customize->add_setting( 'intro_page' , array(
'sanitize_callback' => 'absint',
) );
$wp_customize->add_control( 'intro_page', array(
'label' => __( 'Page to use for intro section', 'veritas' ),
'section' => 'intro',
'settings' => 'intro_page',
'type' => 'dropdown-pages',
'priority' => 1
) );
źródło
fallback_refresh
komentarza: „zapobiega ciągłemu odświeżaniu, gdy dokument nie zawiera selektora zawijania .cta”. Błąd nieskończonego przeładowania powinien zostać naprawiony w wersji 4.7-RC1.customize-preview.js
? Wygląda na to, że ustawia zawartość elementu na identyfikator strony? Czy wybiórcze odświeżanie nie powinno zajmować się tym wszystkim, a więc nie ma potrzeby korzystania z tego pliku JS?customize-preview.js
jest to również niepotrzebne, więc usunąłem go z odpowiedzi.