Bir kategori için varsayılan özellikli bir resim ayarlayabilir miyim?


10

WordPress'in "özellikli resim" özelliğinden yararlanan bir tema ile bir site kuruyorum. Son kullanıcılarım dünyadaki en teknoloji meraklısı olmadığından, kategorilerin gönderiye atanmış varsayılan bir "özellikli resim" olmasını sağlayacak şeyler ayarlamak istiyorum. Bir gönderiye birden çok kategori atanmışsa, ilk kategoriyi alır.

Mevcut bir eklenti veya bunu kodlamanın bir yolu var mı?



2 yıl sonra, bunu yapan bir WordPress eklentisi var. Checkout "Kategoriler İçin Öne Çıkan Resimler" wordpress.org/plugins/featured-images-for-categories

Bu eklentiyi kullanın: wordpress.org/extend/plugins/categories-images Kategoriler ve herhangi bir özel sınıflandırma için de çalışır, eklenti, nasıl kullanılacağı ve belgelerdeki birçok örnek hakkında daha fazla bilgi bulabilirsiniz
Muhammad

Yanıtlar:


13

Öne Çıkan Görüntünün görüntülendiği şablonunuzda: <?php the_post_thumbnail( 'thumbnail' ); ?>Öne Çıkan Görüntünün ayarlanıp ayarlanmadığını koşullu hale getirebilir, ardından ayarlanmadıysa varsayılanı istediğiniz gibi yapabilirsiniz.

Bunu yapmanın bir yolu, tüm varsayılan görüntüleri bir dizine koymak ve bunları kategoriler için adlandırmaktır. news.jpg ve reviews.jpg daha sonra <?php the_post_thumbnail( 'thumbnail' ); ?>Öne Çıkan Resminizi görüntülemek için kullanmak yerine şunu kullanırsınız :

<?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;
} ?>

Yukarıdaki örnekte, yazı haber kategorisindeyse ve yazarınız Öne Çıkan Görüntüyü ayarlamadıysa, varsayılan olarak depolanan görüntüye ayarlanacaktır http://www.yoursite/whatever/directory/news.jpg.


Ben de öyle yapıyorum. +1
epaps

bir gönderi birkaç kategoriye aitse ne oldu?
Eray

İyi soru. get_the_category()sadece bir kategori döndürür ve hangi kategorinin kullanılacağına nasıl karar verdiğini unuturum.
matt

1
get_the category () tüm kategorileri bir dizi olarak alıyor, ancak liitle numarasına ihtiyacınız var. 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

Kategori adları ile bazı sorunlara koştu boşluklarımı biraz benim ihtiyaçlarına uyacak şekilde yukarıdaki kodu değiştirdim

<?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;?>

temel olarak sadece değiş

echo $category[0]->cat_name;

için

echo $category[0]->cat_ID;

kategori 16.jpg veya 3.jpg resimlerinizi kategori numaranıza uygun hale getirir.


Birçok kişinin daha güvenli olduğu ve kategori etiketini veya bilgi bilgilerini değiştirmenize izin verdiği için kedi kimliğini kullanmayı tercih ettiğini düşünüyorum.
Damien

2

Yukarıdakileri yapmanın daha temiz bir yolu;)

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

Michael Fields tarafından Taksonomi Resimleri başarıyla kullandım - kategori / sınıflandırma düzenleme sayfasına yönetim işlevleri ekler, böylece özellikli görüntüler tıpkı yayınlar / sayfalardaki gibi sınıflandırmalar için çalışır. Temanız için ihtiyacınız olan tüm işlevlere sahiptir.

özel sınıflandırma yönetici ekranının eki

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.