_Content()和Get_Post()之间的区别是什么?

时间:2018-01-25 作者:thatsgreyt

我正在调整主题,我需要分解帖子内容以删除一些文本。以下代码是我正在使用的代码:

$custom_Get_Post_Title = explode(\'|\',get_post()->post_content);
echo "<h4>" . $custom_Get_Post_Title[0] . "</h4>";              
echo "<p>" . $custom_Get_Post_Title[1] . "</p>";
最初,开发人员使用以下代码来显示帖子内容,但这让我很难分解数据。

global $post;
setup_postdata($post);
the_content();
MY QUESTION: 这两种都检索帖子内容的方法之间有什么区别?

2 个回复
SO网友:Jacob Peattie

post_content 是的属性WP_Post 对象WP_Post 是表示数据库中post数据的对象。所以post_content 包含存储在数据库中的原始内容。

the_content() 是显示当前帖子内容的模板标记。“当前职位”是指全球$post 变量在函数运行时设置为。全球$post 变量通常设置在The Loop 具有while( have_posts() ) : the_post();.

关键的区别在于the_content() 通过几个过滤器运行原始内容,为显示做好准备。这些功能包括添加段落标记、将URL转换为视频等嵌入内容、将引号等符号转换为智能引号等。许多插件也使用此过滤器添加共享按钮等功能。

所以如果你只是回应post_content 看起来可能不对。您可以模拟the_content() 通过应用the_content 手动筛选。在你的例子中,你会做:

$post = get_post();

$split_content = explode( \'|\', $post->post_content );

echo \'<h4>\' . $split_content[0] . \'</h4>\';              
echo apply_filters( \'the_content\', $split_content[1] );

SO网友:admcfajn

get_post() 与相同global $post

功能,如the_content() 只能在循环内部使用。

这个setup_postdata() 函数可用于使这些函数可用。

您的顶级示例可以重写如下:

gloabl $post;
$custom_Get_Post_Title = explode(\'|\',$post->post_content);
或者您可以对下面的示例执行类似的操作:

global $post;
// setup_postdata($post); <- not really needed
$theContent = get_the_content($post->ID); // can used post-id to retrieve specific
$custom_Get_Post_Title = explode(\'|\',get_post()->post_content);

结束

相关推荐

使用Functions.php的出列脚本

您好,我正在尝试将在我的队列中找到的脚本“jquery.favorite.js”退出队列。php:// WP_ENQUEUE_SCRIPTS static function wp_enqueue_scripts_callback() { global $javo_tso; $javo_register_scripts = Array( \'oms.min.js\'