Ocultar miniatura se houver uma galeria na postagem

Em uma publicação, eu quero sempre mostrar uma das duas opções –

Se a publicação não tiver mais que uma imagem em miniatura, mostre a miniatura.

Se a publicação tiver a miniatura e a galeria, então mostre a única galeria e não mostre a miniatura.

Estou usando um plugin para a galeria chamada metaslider .

Mas eu não sei o que o php seria para envolver essas duas opções?

Solutions Collecting From Web of "Ocultar miniatura se houver uma galeria na postagem"

Basta usar as funções públicas da API: has_shortcode( $content, $tag ); . Ele usa shortcode_exists( $shortcode ); internamente para pesquisar a matriz global $shortcode_tags para o código curto que você está procurando. Se isso for bem sucedido, ele usa get_shortcode_regex() para procurar o get_shortcode_regex() curto atual – isso irá poupar algum tempo e evitar erros.

 the_title(); if ( has_shortcode( get_the_content(), 'gallery' ) ) { the_content(); } else { // show default view - example: the_post_thumbnail( 'your-desired-size' ); the_content(); } 

O gallery_shortcode( $post_id ); A function também pode ser útil. Isso pode não funcionar se você estiver usando um plugin que manipule as galerias diferentes de como o WP core faz. De qualquer forma, certifique-se de que você altere a chamada has_shortcode() acima para usar o has_shortcode() curto que você está (ou o plugin que você está usando) está usando.

Você pode fazer preg_match para verificar se o conteúdo contém um shortcode da galeria

  < ?php $re = "/\\[metaslider id=([0-9]+).*]/s"; if(preg_match($re, get_the_content(), $matches) && has_post_thumbnail()){ ?> 

< ?php the_field('post_gallery'); ?>

< ?php }else{ ?>

< ?php the_post_thumbnail('large'); ?>

< ?php } ?>

O código acima verifica se o conteúdo tem o shortcode [gallery] presente e também se ele tiver uma miniatura de publicação. Se o fizer, ele executa o primeiro bloco senão ele executa o 2º bloco