WordPress - Consulta se um tipo de postagem personalizado tiver postagens - de fora do loop
-
26-09-2019 - |
Pergunta
Estou fazendo um menu de restaurante usando tipos de postagem personalizados para as diferentes seções de menu. Usei o excelente plug -in de interface do usuário de postagem personalizado e o plug -in verve metaxes. Estou então fluindo -os para loops separados com vários segmentos do código abaixo:
<?php
$hotfood = get_posts( array('post_type' => 'hotfood', 'posts_per_page' => -1) );
foreach ($hotfood as $post) :
setup_postdata($post);
?>
<dl>
<dt>
<strong><?php the_title_attribute(); ?></strong>
<span>£<?php echo get_post_meta($post->ID, 'price', true) ?></span>
</dt>
<?php
$key = 'description';
$themeta = get_post_meta($post->ID, $key, TRUE);
if($themeta != '') {
echo '<dd>'.$themeta.'</dd>';
}
?>
</dl>
Mas então acima disso, estou tentando obter um if
Perguntando se existem postagens em um tipo de postagem personalizado que eu defini.
Eu tentei coisas como
<?php if(get_posts ('post_type' => 'hotfood')
echo '<h2>Hot Food</h2>';
?>
e
<?php $args = array
(
'post_type' => 'hotfood',
'numberposts' => -1'
);
$hotfoodpresent = get_posts($args);
if($hotfoodpresent) echo '<h2>Hot Food</h2>';
?>
Mas nenhum deles parece funcionar. Eu acho que já percorrei o Codex do WordPress e passei bastante tempo tentando decifrar o problema.
Qualquer ajuda seria muito apreciada.
ATUALIZAR:Desculpe, totalmente classificado. Eu estava supercomplicando as coisas. Um simples
<?php
$hotfoodpresent = get_posts(
[
'post_type' => 'hotfood',
'posts_per_page' => 1,
'fields' => 'ids'
]
);
if ($hotfoodpresent) {
echo '<h2>Hot Food</h2>'
};
funcionou perfeitamente.
Solução
Eu estava supercomplicando as coisas. Um simples
<?php
$hotfoodpresent = get_posts(
[
'post_type' => 'hotfood',
'posts_per_page' => 1,
'fields' => 'ids'
]
);
if ($hotfoodpresent) {
echo '<h2>Hot Food</h2>';
};
funcionou perfeitamente.