几年来,我已经多次实现了一些“ has_content()”方法,并且两者之间总是有足够的时间,因此我需要再次搜索以回答这个问题。
无论如何-这是我的解决方案,我希望下次在这里找到-因此可供参考。
所有的“内部循环”功能都可以由post对象“ post_content”替换
在functions.php和类似文件中:
// write inside the loop
$the_content = apply_filters('the_content', get_the_content());
if ( !empty($the_content) ) {
echo $the_content;
}
// with post object by id
$post = get_post(12); // specific post
$the_content = apply_filters('the_content', $post->post_content);
if ( !empty($the_content) ) {
echo $the_content;
}
作为功能
// call inside the loop
function mytheme_has_content(){
return !empty(apply_filters('the_content', get_the_content()));
}
循环内的模板:
<?php if ( $customQuery->have_posts() ) {?>
<?php while ( $customQuery->have_posts() ) {
$customQuery->the_post(); ?>
<?php $the_content = apply_filters('the_content', get_the_content()); ?>
<!-- html -->
<?php if ( !empty($the_content) ) { ?>
<div class="content">
<?php echo $the_content; ?>
</div>
<?php } ?>
<?php } ?>
<?php wp_reset_postdata(); ?>
<?php } ?>
empty()
作为变量传递。您必须首先将其存储在变量中。即使那样,它也不起作用,因为您的内容中可能会有一些空白。