Maison  >  Questions et réponses  >  le corps du texte

Se connecter au widget Posts dans Elementor

Je cherche un moyen de connecter le widget Elementor Posts pour afficher une balise H2 supplémentaire sous le titre de chaque publication.

J'obtiendrai ensuite cette valeur H2 à partir du champ ACF à publication unique.

D'après d'autres choses que j'ai lues, il existe des moyens d'obtenir l'intégralité du code HTML de la sortie sous forme de chaîne, mais cela nécessite beaucoup de remplacements de chaînes et n'est donc pas très évolutif. Par exemple: Vous connecter au widget Elementor ? https://developers.elementor.com/docs/hooks/render-widget-content/

Si j'utilise un code comme celui-ci, existe-t-il un moyen de l'accrocher derrière le titre du message ? Ou le remplacement des chaînes est-il le meilleur moyen de résoudre ce problème ?

function change_heading_widget_content( $widget_content, $widget ) {

if ( 'posts' === $widget->get_name() ) {
    $settings = $widget->get_settings();
    $post_id = "Somehow get the post id (maybe look for in the $widget_content string per post?)";

    if ( ! empty( $settings['link']['is_external'] ) ) {
        $widget_content .= '<h2>'. get_field("extra_heading", $post_id) .'<h2>';
    }
}

return $widget_content;

}
add_filter( 'elementor/widget/render_content', 'change_heading_widget_content', 10, 2 );

J'apprécie toute l'aide. Merci

P粉268654873P粉268654873334 Il y a quelques jours686

répondre à tous(1)je répondrai

  • P粉706038741

    P粉7060387412023-12-14 09:25:51

    Si vous fouillez dans le code source d’Elementor Pro, vous trouverez une astuce intéressante : Balises dynamiques -> Module ACF

    get_queried_object()

    Ou essayez ceci : Étiquette dynamique -> Rendu du module ACF

    function get_queried_object_meta( $meta_key ) {
            $value = '';
            if ( is_singular() ) {
                $value = get_post_meta( get_the_ID(), $meta_key, true );
            } elseif ( is_tax() || is_category() || is_tag() ) {
                $value = get_term_meta( get_queried_object_id(), $meta_key, true );
            }
    
            return $value;
        }

    ou utilisez simplement get_field('my-field') au lieu de $post_id

    répondre
    0
  • Annulerrépondre