I am setting up a one page WordPress site. I am getting some pages listed in my site that does not have content. For example, I will get the empty blog page as well as the blog template. So I thought I could throw in a check to see if the page has content and if it does go ahead and post that information. I am having trouble getting it to work. I am using a custom query for the homepage. So I thought I could do this
if ( $page_query->have_posts() ) : while ( $page_query->have_posts() ) : $page_query->the_post();
if( $page_query->post_content != ''){
get_template_part( 'content', get_post_format() );
}
endwhile; endif;
problem is that I get an error on that code and I can’t figure out why. I get this error
Notice: Undefined property: WP_Query::$post_content in
The content is a property of the
post
object, not of the query object.Use
$post
orget_post()
instead:What about
i have implemented some “has_content()” methods for several times over years now and there is always enough time in between so i need to search again a bit to answer this question.
anyways – this is my solution, which i like to find the next time here – so its for reference.
all “inside loop” functions can be replaced by a post objects “post_content”
in functions.php and similar files:
as function
template inside the loop:
This also works, and tests for things like empty paragraph tags or
in the content which might cause a normal check to fail. See http://blog.room34.com/archives/5360 for the original idea – just recording it here so I can find it again. :O)Put this in your functions.php:
And put this where you want to run the check:
That will return
true
if the content is empty,false
if not.