web-dev-qa-db-fra.com

si le message a du contenu

Je suis en train de mettre en place un site WordPress d'une page. Je reçois des pages répertoriées sur mon site qui n'ont pas de contenu. Par exemple, je vais obtenir la page de blog vide ainsi que le modèle de blog. Alors j'ai pensé que je pourrais jeter un chèque pour voir si la page a du contenu et si elle va de l'avant et affiche cette information. J'ai du mal à le faire fonctionner. J'utilise une requête personnalisée pour la page d'accueil. Alors j'ai pensé que je pouvais le faire

 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;

le problème est que je reçois une erreur sur ce code et je ne peux pas comprendre pourquoi. Je reçois cette erreur

Remarque: propriété non définie: WP_Query :: $ post_content in

6
Jamie

Le contenu est une propriété de l'objet post et non de l'objet de requête.

Utilisez $post ou get_post() à la place:

if( '' !== get_post()->post_content ) {
// do something
}
9
fuxia

Cela fonctionne également et teste des éléments tels que les balises de paragraphe vides ou   dans le contenu, ce qui pourrait provoquer l'échec d'une vérification normale. Voir http://blog.room34.com/archives/5360 pour l'idée originale - il suffit de l'enregistrer ici pour que je puisse la retrouver. : O)

Mettez ceci dans votre functions.php:

function empty_content($str) {
    return trim(str_replace(' ','',strip_tags($str))) == '';
}

Et mettez ceci où vous voulez lancer le contrôle:

if (function_exists('empty_content') && empty_content($post->post_content)) { ... }

Cela retournera true si le contenu est vide, false sinon.

2
Michelle

Qu'en est-il de

if ( !empty( get_the_content() ) ){ 
//code 
}
2
Juan Solano