私はいくつかの "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()
変数として渡すことはできません。最初にそれを変数に格納する必要があります。それでも、コンテンツにいくつかの空のスペースがある可能性があるため、機能しません。