Ich möchte Inhalte von einer Seite (genannt “contact_text”) zu einer anderen Seite an einer bestimmten Stelle hinzufügen (beides sind WordPress Admin-Seiten). Ich habe diesen Stack Overflow-Thread verfolgt .
Allerdings glaube ich nicht, dass ich eine PHP-function innerhalb einer WP-Seite aufrufen kann, und schon gar nicht an der Stelle, an der ich es möchte. Muss ich für diese function einen Shortcode einrichten, um ihn zu benutzen?
Eine weitere Shortcode-Option (fügen Sie Ihrer functions.php Folgendes hinzu). Mit diesem haben Sie zwei Möglichkeiten. Sie können nach der Post- / Seiten-ID (funktioniert für jeden Post-Typ) oder dem Seitennamen / Slug (funktioniert nur für Seiten) abfragen.
// Add "Show Content" Shortcode function wpse_120886_show_content( $atts ) { // Attributes $a = shortcode_atts( array( 'id' => null, 'page_name' => null, ), $atts ) ); // Get Content & Return if ( $a['id'] ) { $the_post = get_post( $a['id'] ); $the_content = $the_post->post_content; } elseif ( $a['page_name'] ) { $the_post = get_posts( array( 'name' => $a['page_name'], 'post_type' => 'page', 'post_status' => 'publish', 'posts_per_page' => 1 ) ); $the_content = $the_post[0]->post_content; } return $the_content; } add_shortcode( 'show_content', 'wpse_120886_show_content' );
Verwendung :
Nach ID: [show_content id="ID_HERE"]
Nach Name / Slug: [show_content page_name="contact_text"]
Sie können genau diesen Code verwenden und in einen Shortcode übernehmen, wenn Sie möchten.
add_shortcode( 'show_post', 'show_post_shortcode' ); function show_posts_shortcode( $atts ) { $defaults = array( 'path' => null ); $attributes = shortcode_atts( $defaults, $atts ); if ( null === $attributes['path'] ) return; ob_start(); show_post( $attributes['path'] ); $contents = ob_get_contents(); @ob_end_clean(); return $contents; }
Sie geben dann einfach [show_post path="about"]
, um den ungefähren Seiteninhalt zu erhalten.