suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Einbinden in das Posts-Widget in Elementor

Ich suche nach einer Möglichkeit, das Elementor-Beitrags-Widget zu verbinden, um unter dem Beitragstitel jedes Beitrags einen zusätzlichen H2-Tag anzuzeigen.

Diesen H2-Wert erhalte ich dann aus dem Single-Post-ACF-Feld.

Aus anderen Dingen, die ich gelesen habe, gibt es Möglichkeiten, den gesamten HTML-Code der Ausgabe als String zu erhalten, aber das erfordert viel String-Ersetzung und ist daher nicht sehr zukunftssicher. Zum Beispiel: In Elementor-Widget einbinden? https://developers.elementor.com/docs/hooks/render-widget-content/

Wenn ich Code wie diesen verwende, gibt es eine Möglichkeit, ihn hinter den Beitragstitel zu hängen? Oder ist der Austausch von Saiten der beste Weg, dieses Problem zu lösen?

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 );

Ich bin für jede Hilfe dankbar. Danke

P粉268654873P粉268654873355 Tage vor704

Antworte allen(1)Ich werde antworten

  • P粉706038741

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

    如果您深入研究 Elementor Pro 源代码,您会发现一个很好的提示: 动态标签 -> ACF 模块

    get_queried_object()

    或者试试这个: 动态标签 -> 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;
        }

    或者只使用 get_field('my-field') 而不使用 $post_id

    Antwort
    0
  • StornierenAntwort