it-swarm.com.de

Verwenden Sie the_content außerhalb der Schleife

Ich habe versucht, die ersten 100 Wörter des Inhalts in der Kopfzeile abzurufen, und ich verwende das folgende Snippet, um die ersten 100 Wörter in der Schleife abzurufen. Es ist jedoch möglich, den Wert außerhalb der Schleife abzurufen:

$cstring = get_the_content( '' );
$newcString = substr( $cstring, 0, 100 );
echo'<p>' . $newcString . '</p>';
2
Hardeep Asrani

Wenn Sie versuchen, dies für die aktuelle Seite zu tun, auf der Sie sich befinden, können Sie dies einfach verwenden:

global $post;
$content = $post->post_content;`

Dadurch wird der Inhalt für den aktuellen Beitrag abgerufen, anstatt dass die ID speziell festgelegt werden muss.

5
Nick Young

Ich schrieb einen Artikel über das hier , aber hier ist eine Zusammenfassung der Punkte:

  • the_content kann nur innerhalb der Schleife verwendet werden
  • 'inside the loop' kann nur durch Aufrufen von setup_postdata() und global $post korrekt 'simuliert' werden.
  • Sie müssen sich dann selbst aufklären, indem Sie wp_reset_postdata() aufrufen.

Der folgende Code bietet eine Funktion zum Abrufen des Beitragsinhalts von der Beitrags-ID. Es unterscheidet sich von @NickYoung answer darin, dass der Inhalt, den Sie erhalten, nicht ist, was in der Spalte post_content der Tabelle posts gespeichert ist, sondern dass der Inhalt nachdem the_content durchlaufen wurde. Filter (zB geparste Shortcodes etc).

Der Code

/**
 * Display the post content. Optinally allows post ID to be passed
 * @uses the_content()
 * @link http://stephenharris.info/get-post-content-by-id/
 * @link https://wordpress.stackexchange.com/questions/142957/use-the-content-outside-the-loop
 * @param int $id Optional. Post ID.
 * @param string $more_link_text Optional. Content for when there is more text.
 * @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false.
 */
function sh_the_content_by_id( $post_id=0, $more_link_text = null, $stripteaser = false ){
    global $post;
    $post = get_post($post_id);
    setup_postdata( $post, $more_link_text, $stripteaser );
    the_content();
    wp_reset_postdata( $post );
}
5
Stephen Harris

Sie können get_page () oder get_post () verwenden, um Inhalte außerhalb der Schleife abzurufen

//For page
$page_id = 1;
$get_page_object = get_page( $page_id );
$page_object = $get_page_object->post_content;
echo $newpagecString = substr($page_object, 0, 100);
//For post
$post_id = 2;
$get_post_object = get_post( $post_id );
$post_object = $get_post_object->post_content;
echo $newpostcString = substr($post_object, 0, 100);
0
Maidul