Shortcode für Display Posts im Wp-Editor

Sie müssen einen Shortcode für Anzeigeposts auf einer anderen Seite erstellen. Shortcode muss im Wp-Editor hinzugefügt werden.

Ich habe diesen Code für Anzeigeposts auf einer anderen Seite erstellt:

 

Es funktioniert wie erwartet in PHP-Vorlage. Aber wie man diesen Code in Shortcode-function für die Verwendung [jobs] hinzufügen?

Solutions Collecting From Web of "Shortcode für Display Posts im Wp-Editor"

Einen Shortcode zu deklarieren ist so einfach wie das:

 add_shortcode('jobs', 'callback_function'); function callback_function(){ $content = ''; $args = array( 'post_type' => array('job'), 'posts_per_page' => 20 ); $the_query = new WP_Query( $args ); if ($the_query->have_posts() ) { while ( $the_query->have_posts() ) { $the_query->the_post(); if ( 683 !== get_the_ID() ) { $content .= ''; } $content .= ' 

'.get_the_title().'

'. get_the_content() .'

'; if ( 683 !== get_the_ID() ) { $content .= '
'; } } } wp_reset_postdata(); return ' '; }

Wickeln Sie Ihren Code in eine function und ersetzen Sie callback_function durch den Namen Ihrer function. Dann kannst du es im Editor als [shortcode-name] .

Sie sollten jedoch beachten, dass Sie das echo innerhalb einer Shortcode-function verwenden können. Sie sollten Ihren Inhalt in einer Variablen speichern und dann die Variable zurückgeben.

Das bedeutet, dass Sie keine functionen verwenden können, die den Inhalt wiedergeben, z. B. the_content() oder the_title() . Sie sollten stattdessen get_the_content() oder get_the_title() verwenden.

Hinweis: Der Grund, dass ich nicht apply_filters('the_content', get_the_contnet()); verwendet apply_filters('the_content', get_the_contnet()); Wenn Sie diesen Shortcode in einem Post verwenden und der Post dann in dieser Schleife enthalten ist, ist diese Schleife eine unendliche, da der Filter den Shortcode erneut ausführen wird, der einen verschachtelten Shortcode usw. ausführt.