在循环之外使用内容(_C)

时间:2014-04-30 作者:Hardeep Asrani

我试图获取标题中内容的前100个单词,我使用以下代码片段获取循环中的前100个单词,但是否可以获取循环外的值:

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

3 个回复
最合适的回答,由SO网友:Nick Young 整理而成

如果您试图在当前页面上执行此操作,您可以使用以下选项:

global $post;
$content = $post->post_content;`
这将获取当前帖子的内容,而不必专门设置ID。

SO网友:Stephen Harris

我写了一篇关于this here, 但以下是要点的总结:

  • the_content 只能在“循环内”使用“循环内”只能通过调用setup_postdata()global $post.wp_reset_postdata()
下面的代码提供了从帖子ID检索帖子内容的功能。它不同于@NickYoung 回答是,您收到的内容是not 存储在post_content posts表的列,而不是内容after 已经过去了the_content 过滤器(例如,已解析的短代码等)。

代码

/**
 * 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 );
}

SO网友:Maidul

您可以使用get_page()get_post() 从循环中获取内容

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

结束

相关推荐

wp_query inside the_loop

我的循环有这个问题。我正在制作一个将从主查询调用的快捷码。它将显示在\\u循环的首页上。因为某种我无法理解的原因。第二个查询只显示一篇文章,而它应该显示3篇。因此,短代码将出现在页面内容中。在“设置”部分,我将首页设置为“主页”,将博客页面设置为“博客”,但主页不是模板。它是由索引生成的。使用WordPress 2014主题的php页面。因此,在“主页”内容区域,我有一个快捷码,它生成第二个循环,从一个名为“特色”的类别中获取3篇文章。 $featured = new WP_Query( array( \