我是wordpress的新手,并尝试制作一个仅显示特定类别的最后一个帖子的小部件。
要做到这一点,我在管理员中给出了一些设置来选择管理员想要显示最后一个帖子的类别(最后一个ID的帖子)。
我在小部件中使用以下代码来显示帖子内容:
$query_arguments = array(
'posts_per_page' => (int) 1,
'post_type' => 'post',
'post_status' => 'publish',
'cat' => (int) $settings['category'],
'order' => 'DESC',
'orderby' => (($settings['display_by'] == 0) ? 'ID' : 'date')
);
$posts_query = new WP_Query( $query_arguments );
if ($posts_query->have_posts()) {
$posts = $posts_query->get_posts();
$post = $posts[0];
echo $post->post_content;
}
但是上面的代码在一个段落中显示内容,或者你可以说没有格式。我做了很多搜索,发现我需要应用“the_content”过滤器来格式化内容。所以我做了同样的代码:
if ($posts_query->have_posts()) {
$posts = $posts_query->get_posts();
$post = $posts[0];
$content = apply_filters('the_content', $post->post_content);
echo $content;
}
现在上面的更改返回了空字符串。我有很多东西,但每个人都说要使用应用过滤器或使用the_content()函数。我尝试了两种解决方案但没有发生任何事情。
有人可以分享这个问题的解决方案吗?
答案 0 :(得分:0)
请检查您是否收到$ post-> post_content中的任何文字 通过echo $ post-> post_content
答案 1 :(得分:0)
您需要做的就是,
$query_arguments = array(
'posts_per_page' => (int) 1,
'post_type' => 'post',
'post_status' => 'publish',
'cat' => (int) $settings['category'],
'order' => 'DESC',
'orderby' => (($settings['display_by'] == 0) ? 'ID' : 'date')
);
$posts_query = new WP_Query( $query_arguments );
while ($posts_query->have_posts()) {
$posts_query->the_post();
echo get_the_content();
}