我正在尝试修复自定义WordPress主题的问题,该主题在帖子上内嵌呈现图片标题。我的WP知识很多,所以,我不太确定我应该在哪里看。
以下是显示帖子的代码:
<?
$args = array (
'post_type' => array( 'post' ),
'meta_key' => 'event_date', // name of custom field
'orderby' => 'meta_value_num',
'order' => 'ASC'
);
// The Query
$blogQuery = new WP_Query( $args );
while ( $blogQuery->have_posts() ) {
$blogQuery->the_post();
$date = DateTime::createFromFormat('Ymd', get_field('event_date'));
$today = DateTime::createFromFormat('Ymd', date('Ymd'));
if($date > $today){
echo '<div class="blog-entry">';
echo '<h3 class="wonk green-nav">Event: ';
echo get_the_title().'</h3>';
if(get_field('update_type') == 'event'){
echo '<h4>';
echo $date->format('l, F jS, Y. ');
the_field('event_time');
echo '</h4>';
}
echo '<p>' .get_the_content().'</p>';
echo '</div>';
}
}
wp_reset_postdata();
?>
这是一个屏幕截图,显示了前端的内容......
答案 0 :(得分:1)
Shyamin的答案是一个潜在的解决方案,但我想更深入地说明实际情况。
In the docs用于the_content()
函数,您可以看到Wordpress实际上是在使用get_the_content()
,然后使用名为apply_filters( 'the_content', $content)
Docs here的便捷函数。
此功能是the_content()
与get_the_content()
相比正确呈现编辑器内容的原因。它正在应用为the_content
挂钩添加的所有过滤器。长话短说,添加到该钩子的过滤器之一是do_shortcode()
,它呈现了短代码。
Here is a neat blog post我发现在这方面还有更多讨论,以及如何创建自己的apply_filters
挂钩并添加自己的过滤器以模仿the_content()
对原始内容的作用。
因此,您有2种解决方案:(鉴于您没有其他问题可以阻止显示短代码)
the_content()
而不是echo get_the_content()
'<p>' .get_the_content().'</p>';
存储在类似$content_data
的变量中。然后在您的echo语句中使用:echo apply_filters('the_content', $content_data);
这应该可以解决您的问题!
答案 1 :(得分:0)
我的自定义主题遇到了同样的问题。 Dunno为什么会这样,但我找到了一种方法让它发挥作用。所以把这个评论告诉别人:)
如果您正在使用get_the_content(),请尝试使用the_content()函数加载帖子内容.the_content()将为WordPress中的标题短代码呈现正确的html标记。不知道为什么会这样:/