Posso definir uma imagem em destaque padrão para uma categoria?


10

Estou configurando um site com um tema que aproveita o recurso "imagem em destaque" do WordPress. Como meus usuários finais não são os especialistas em tecnologia do mundo, eu gostaria de configurar as coisas para que as categorias tenham uma "imagem em destaque" padrão atribuída à postagem. No caso de várias categorias atribuídas a uma postagem, seria simplesmente a primeira.

Existe um plugin existente ou uma maneira de codificar isso?



2 anos depois, existe um plugin para WordPress que faz isso. Caixa "Imagens em destaque para categorias" wordpress.org/plugins/featured-images-for-categories

Use este plugin: wordpress.org/extend/plugins/categories-images Ele também funciona para categorias e qualquer taxonomia personalizada; você pode encontrar mais informações sobre o plugin, como usá-lo e vários exemplos nas documentações
Muhammad

Respostas:


13

No seu modelo em que a imagem em destaque é exibida: <?php the_post_thumbnail( 'thumbnail' ); ?>você pode condicioná-la à definição da imagem em destaque e, em seguida, defini-la como o que quiser, se não estiver definida.

Uma maneira de fazer isso é colocar todas as imagens padrão em um diretório e nomeá-las para as categorias, por exemplo. news.jpg e reviews.jpg, em vez de usar <?php the_post_thumbnail( 'thumbnail' ); ?>para exibir sua Imagem em destaque, você usaria isso:

<?php 
   if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { 
      the_post_thumbnail('thumbnail');
   } else { ?>
      <img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> <?php }
   endif;
} ?>

Portanto, neste exemplo acima, se a postagem estiver na categoria de notícias e seu escritor não tiver definido a Imagem em destaque, ela será padronizada para a imagem armazenada em http://www.yoursite/whatever/directory/news.jpg.


É assim que eu faço também. 1
epaps 07/02

o que aconteceu se uma postagem pertencer a algumas categorias?
precisa

Boa pergunta. get_the_category()retornará apenas uma categoria e eu esqueço como ele decide qual categoria usar.
22811 matt-

11
get_the category () está obtendo todas as categorias como uma matriz, mas você precisa de um truque de liitle. studiograsshopper.ch/code-snippets/…
Eray

2
<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

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

<?php else :?>

<img src="<?php bloginfo('template_directory'); ?>/your image directory name in theme folder/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> 

<?php endif;?>

2

Encontrei alguns problemas com nomes de categorias com espaços. Alterei um pouco o código acima para atender às minhas necessidades

<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

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

<?php else :?>

<img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_ID; ?>.jpg" /> 

<?php endif;?>

basicamente apenas mude

echo $category[0]->cat_name;

para

echo $category[0]->cat_ID;

o que tornará sua imagem 16.jpg ou 3.jpg o que corresponder ao seu número de categoria.


Acho que muitas pessoas preferem usar a identificação do gato, pois é mais seguro e permite que você altere o rótulo da categoria ou a lesma.
Damien

2

Uma maneira mais limpa de fazer o que precede;)

if ( ( function_exists( 'has_post_thumbnail' ) ) && ( has_post_thumbnail() ) ) : 
    the_post_thumbnail( 'thumbnail' );
else :
    ?><img src="whatever/directory/<?php 
        $category = get_the_category(); echo $category[0]->cat_name; 
        ?>.jpg" /><?php
endif;

1

Usei com sucesso imagens de taxonomia de Michael Fields - ele adiciona funções de gerenciamento à página de edição de categoria / taxonomia, para que as imagens em destaque funcionem para taxonomias da mesma forma que nas postagens / páginas. Tem todas as funções que você precisa para o seu tema.

snap da tela de administração de taxonomia customizada

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.