Tengo una sección en una plantilla de página en el tema que estoy creando que muestra contenido basado en una página que el usuario selecciona en el personalizador usando el control de páginas desplegables. En este momento, solo está utilizando el transporte de actualización predeterminado estándar, pero dado que es un poco pesado recargar todo el iframe, me preguntaba si sería posible usar la nueva función de actualización selectiva. Pero no estoy seguro de cómo implementarlo. Alguien sabe si esto es posible y, de ser así, ¿cómo hacerlo?
Aquí está el código en mi plantilla de página que muestra el contenido:
<?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>';
}
} ?>
Aquí está el código para la configuración en el personalizador:
$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
) );
fuente
fallback_refresh
comentario: "evita la actualización constante cuando el documento no contiene el selector .cta-wrap". El error con la recarga infinita debe repararse en 4.7-RC1.customize-preview.js
? ¿Parece que está configurando el contenido del elemento a la ID de la página? ¿No debería la actualización selectiva manejar todo esto por usted y, por lo tanto, no hay necesidad de este archivo JS?customize-preview.js
es innecesario, así que lo eliminé de la respuesta.