Holen Sie sich Post-Inhalte von außerhalb der Schleife
-
-
Sie kennen den Ausweisnicht?Nutzen Sie `get_queried_object_id ()`!https://developer.wordpress.org/reference/classes/wp_query/get_queried_object_id/Don't know the ID? Make use of `get_queried_object_id()` ! https://developer.wordpress.org/reference/classes/wp_query/get_queried_object_id/
- 0
- 2016-04-12
- jave.web
-
10 Antworten
- Stimmen
-
- 2012-05-10
Sie können
get_page ()
verwenden,um den$post
Objekteiner statischen Seite:$page_id=302; $page_object=get_page ($page_id); echo $page_object- >post_content;
Bearbeiten
Ebenso können Sie
get_post ()
verwenden,um das zurückzugeben$post
Objekteines Beitrags:$post_id=302; $post_object=get_post ($post_id); echo $post_object- >post_content;
You can use
get_page()
to return the$post
object of a static page:$page_id = 302; $page_object = get_page( $page_id ); echo $page_object->post_content;
Edit
Similarly, you can use
get_post()
to return the$post
object of a post:$post_id = 302; $post_object = get_post( $post_id ); echo $post_object->post_content;
-
Funktionieren Shortcodesbei dieser Verwendungnoch?Do shortcodes still work when using this?
- 0
- 2014-02-20
- Tim Baas
-
Ich habegerade herausgefunden,dass diesnicht der Fallist.Verwenden Sie `setup_postdata ($post);` zuerst können Sie danach`the_content (); `verwendenJust found out it doesn't. Use `setup_postdata( $post );` first, after that, you can use `the_content();`
- 0
- 2014-02-20
- Tim Baas
-
Sie könnteneinfach `apply_filters ('the_content',$post_object->post_content);` ausführenYou could just run `apply_filters( 'the_content', $post_object->post_content );`
- 5
- 2017-03-01
- Nathan Powell
-
- 2014-09-14
Um den Inhalt des Beitrags außerhalb der Schleife zuerhalten,können Sie soetwas schreiben
global $post; $content = $post->post_content; if ( !empty( $content ) ) : echo $content; endif;
to get the content of the post outside the loop you can write something like this
global $post; $content = $post->post_content; if ( !empty( $content ) ) : echo $content; endif;
-
- 2014-03-23
Wenn Ihr Inhalt Shortcodesenthält,sollten Sie Folgendes verwenden:
$post_id = 22; $post_object = get_post( $post_id ); echo do_shortcode( $post_object->post_content );
If your content include shortcodes, you should use:
$post_id = 22; $post_object = get_post( $post_id ); echo do_shortcode( $post_object->post_content );
-
Machen Sie keinen Shortcode https://kovshenin.com/2013/dont-do_shortcode/Don't do shortcode https://kovshenin.com/2013/dont-do_shortcode/
- 0
- 2015-06-24
- Brad Dalton
-
Diese Seitebietet keinen zwingenden Grund,um "do_shortcode" zu vermeiden,außer zu sagen: "Es könnte langsam sein" und "Sie könneneinfach die Funktion verwenden,die der Funktionscode aufruft."Diese Gründegeltennurfür dietrivialsten undeinfachsten Szenarien.Dies schlägtfehl,wenn der Shortcode aneiner anderen Stellegeneriert wird oder wennmehrere Shortcodes oder Shortcodesmit anderen Inhalten und Markupsgemischt sind.Ohne zwingenden Grund würdeich der Aussage,"do_shortcode" zu vermeiden,nicht zustimmen.Dies riechtnach [vorzeitiger Optimierung] (http://ubiquity.acm.org/article.cfm?id=1513451).That page doesn't provide a compelling reason to avoid `do_shortcode` other than saying, "It might be slow" and "You can just use the function that the short code calls." Those reasons are only valid for the most trivial for the most simple scenarios. It fails when the shortcode is generated somewhere else, or if there are multiple shortcodes, or shortcodes mixed in with other content and markup. Without a compelling reason, I would disagree with the statement to avoid `do_shortcode`. This smells like [premature optimization](http://ubiquity.acm.org/article.cfm?id=1513451).
- 1
- 2017-04-17
- Jeff
-
Außerdem wird die Kopplung zwischen Ihrem Code und dem Code des ursprünglichen Shortcodeserhöht.Wenn die Sicherungsmethode des Shortcodesjemals umbenannt wird oder sich die Signatur ändert,wird Ihr Codebeschädigt.And it also increases the coupling between your code and the original shortcode's code. If the shortcode's backing method is ever renamed or the signature changes, your code will break.
- 0
- 2017-04-17
- Jeff
-
- 2014-05-23
Der Vollständigkeit halberbauen wir auf Tims Kommentar oben auf und sindinspiriert von Stephen Harris 'Artikel Die Lösung,die die Verwendung von
the_content()
ermöglicht,lautet:$post_id = 302; global $post; $post = get_post($post_id); setup_postdata( $post ); the_content(); wp_reset_postdata( $post );
Und daher werden Filter angewendet (Absätze werdeneingefügt usw.) und Shortcodesfunktionieren.
For completeness, building on Tim's comment above and inspired by Stephen Harris's article, the solution that enables use of
the_content()
is:$post_id = 302; global $post; $post = get_post($post_id); setup_postdata( $post ); the_content(); wp_reset_postdata( $post );
And hence filters get applied (paragraphs will be inserted etc.) and shortcodes work.
-
Dies hatmeinen Browserfast zum Absturzgebracht:/Das Entfernen des kaufmännischen Und hilft,aberes werdenimmernoch keine Shortcodes analysiert.This almost crashed my browser :/ taking out the ampersand helps, but it's still not parsing shortcodes.
- 0
- 2015-10-05
- Zade
-
- 2015-06-24
Da Sie Ihre Zielpost-ID (302) kennen,kann diese Kurzschrift-Syntax,die Sie außerhalb der Schleife verwenden können,nützlich sein (obwohlihre Leistungfast dieselbeist wiebei jeder anderen alternativen Methode :)
echo(get_post_field('post_content',302));
Since you know your target post ID (302), you may find useful this shorthand syntax that you can use out of the loop (though its performance is pretty much the same as in any other alternative method:)
echo(get_post_field('post_content',302));
-
- 2016-02-08
Mit der Funktion
get_post_data()
können Sie Beiträge außerhalb der Schleife abrufen.Platzieren Sie diesen Codein functions.phpfunction get_post_data($postId) { global $wpdb; return $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID=$postId"); }
undfügen Sie dann dieses Snippet hinzu,um den Prozessbesser steuern zu können
<?php $data = get_post_data(302); echo $data->post_date; // post date echo $data->post_title; // post title echo $data->post_content; // post content echo $data->comment_count; // comments number ?>
You can use the
get_post_data()
function to get post outside the loop. Place this code in functions.phpfunction get_post_data($postId) { global $wpdb; return $wpdb->get_row("SELECT * FROM $wpdb->posts WHERE ID=$postId"); }
and then add this snippet for more control on the process
<?php $data = get_post_data(302); echo $data->post_date; // post date echo $data->post_title; // post title echo $data->post_content; // post content echo $data->comment_count; // comments number ?>
-
- 2017-03-01
Sie können die Lösung wiegesagtmit
get_post
und$post_object->post_content
verwenden. Vergessen Siejedochnicht,einen Scheck hinzuzufügen,bevor Sie diesen Beitrag verwendenObjekt:function get_post_content( $post_id = null ) { $post_object = get_post( $post_id ); if ( ! $post_object ) { return ''; } //else return apply_filters('the_content', $post_object->post_content); } echo get_post_content( $other_post_id );
You can use, as said, the solution with
get_post
and$post_object->post_content
, but don't forget to add a check before you use that post object:function get_post_content( $post_id = null ) { $post_object = get_post( $post_id ); if ( ! $post_object ) { return ''; } //else return apply_filters('the_content', $post_object->post_content); } echo get_post_content( $other_post_id );
-
- 2016-04-20
Sie könneneinfachget_the_content (postId)
aufrufen<?php echo get_the_content($postId); ?>
You can simply call get_the_content(postId)
<?php echo get_the_content($postId); ?>
-
Dasisteigentlichnichtmöglich.Daserste Argumentgibt esfür den Inhalt,wenneseinen weiteren Linkgibt: https://codex.wordpress.org/Function_Reference/get_the_contentActually, that's not possible. First arg there is for the content when there is a more link: https://codex.wordpress.org/Function_Reference/get_the_content
- 2
- 2017-08-24
- joshcanhelp
-
- 2015-04-04
benutze
wp_reset_postdata();
es wirdfunktionieren .. (bearbeitet)<?php $args = array( 'post_type' => 'posttype', 'p' => 'post_id' ); $the_query = new WP_Query( $args ); if( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php the_content(); ?> <?php endwhile; endif; wp_reset_postdata(); ?>
Posttyp kann "Post","Seite" oder Ihrbenutzerdefinierter Posttyp sein.Hieristp=302 Ihre Post-ID. Ich hoffe,es wirdfunktionieren.
use
wp_reset_postdata();
it will work.. (edited)<?php $args = array( 'post_type' => 'posttype', 'p' => 'post_id' ); $the_query = new WP_Query( $args ); if( have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <?php the_content(); ?> <?php endwhile; endif; wp_reset_postdata(); ?>
posttype can be "post" , "page" or your custom post type. Here p=302 is your post id.. Hope it will work.
-
Verwenden Sieniemals "query_posts",es sei denn,Siemüssen die Seitenfunktionen unterbrechen.Verwenden Siefürbenutzerdefinierte Abfragenimmer "WP_Query" oder "get_posts" :-)Never use `query_posts` unless you need to break page functionalities. Always use `WP_Query` or `get_posts` for custom queries :-)
- 2
- 2015-04-04
- Pieter Goosen
-
ja .. du hast recht ..es kann auch Wp_Query ..gleiches Ergebnisgefunden ..yes.. you are right.. It can Wp_Query as well.. same result found..
- 0
- 2015-04-05
- Jahirul Islam Mamun
-
Esgibt auch den Filter "pre_get_posts" und "the_post".So viel Detail.There is also the `pre_get_posts` filter, and `the_post`. So much detail.
- 0
- 2017-03-01
- Nathan Powell
-
- 2012-05-10
Sie können Inhaltein eine Kategorie Xeinfügen und query_post vorher wiefolgt verwenden:
<?php query_posts('cat=X&showposts=1'); ?> <?php while (have_posts()) : the_post(); ?> <?= get_the_content(); ?> <?php endwhile; ?>
you can put content in a category X and use query_post before while like this :
<?php query_posts('cat=X&showposts=1'); ?> <?php while (have_posts()) : the_post(); ?> <?= get_the_content(); ?> <?php endwhile; ?>
Gibteseine Möglichkeit,den Inhalt voneinem anderen außerhalb der Schleife abzurufen?Die ID lautet 302 undichmuss den Inhalt aufeiner anderen Seite anzeigen.