Tôi có thể đặt hình ảnh nổi bật mặc định cho danh mục không?


10

Tôi đang thiết lập một trang web có chủ đề tận dụng tính năng "hình ảnh đặc trưng" của WordPress. Vì người dùng cuối của tôi không phải là người thích công nghệ nhất trên thế giới, tôi muốn thiết lập mọi thứ để các danh mục sẽ có một "hình ảnh đặc trưng" mặc định được gán cho bài đăng. Trong trường hợp có nhiều danh mục được gán cho một bài đăng, thì nó sẽ chỉ đơn giản là lấy danh mục đầu tiên.

Có một plugin hiện có hoặc một cách để mã này?



2 năm sau, có một plugin WordPress thực hiện việc này. Thanh toán "Hình ảnh nổi bật cho danh mục" wordpress.org/plugins/featured-images-for-c

Sử dụng plugin này: wordpress.org/extend/plugins/clists-images Nó hoạt động cho các danh mục và bất kỳ phân loại tùy chỉnh nào, bạn có thể tìm hiểu thêm về plugin, cách sử dụng và rất nhiều ví dụ trong tài liệu
Muhammad

Câu trả lời:


13

Trong mẫu của bạn nơi bạn có Ảnh nổi bật được hiển thị: <?php the_post_thumbnail( 'thumbnail' ); ?>bạn có thể đặt nó ở điều kiện xem Ảnh nổi bật có được đặt hay không, sau đó đặt mặc định thành bất cứ thứ gì bạn muốn nếu nó không được đặt.

Một cách để làm điều này là đặt tất cả các hình ảnh mặc định trong một thư mục và đặt tên cho các danh mục, ví dụ. news.jpg và review.jpg sau đó thay vì sử dụng <?php the_post_thumbnail( 'thumbnail' ); ?>để hiển thị Ảnh nổi bật của bạn, bạn sẽ sử dụng điều này:

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

Vì vậy, trong ví dụ này ở trên nếu bài đăng thuộc danh mục tin tức và nhà văn của bạn đã không đặt Hình ảnh nổi bật, nó sẽ mặc định là hình ảnh được lưu trữ tại http://www.yoursite/whatever/directory/news.jpg.


Đây là cách tôi làm điều đó là tốt. +1
epaps

Điều gì đã xảy ra nếu một bài viết thuộc về một vài loại?
Xóa

Câu hỏi hay. get_the_category()sẽ chỉ trả về một danh mục và tôi quên cách nó quyết định sử dụng danh mục nào.
matt

1
get_the category () đang nhận tất cả các danh mục dưới dạng một mảng, nhưng bạn cần một thủ thuật 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

Tôi gặp một số vấn đề với tên danh mục có khoảng trắng tôi đã thay đổi mã trên một chút để phù hợp với nhu cầu của mình

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

về cơ bản chỉ cần thay đổi

echo $category[0]->cat_name;

đến

echo $category[0]->cat_ID;

sẽ làm cho hình ảnh của bạn 16.jpg hoặc 3.jpg bất cứ điều gì tương ứng với số danh mục của bạn.


Tôi nghĩ rằng nhiều người thích sử dụng id mèo vì nó an toàn hơn và cho phép bạn thay đổi nhãn danh mục hoặc sên.
Damien

2

Một cách sạch hơn để làm như trên;)

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

Tôi đã sử dụng thành công Hình ảnh phân loại của Michael Lĩnh vực - nó bổ sung các chức năng quản lý cho trang chỉnh sửa danh mục / phân loại, để các hình ảnh nổi bật hoạt động cho các phân loại giống như chúng làm với các bài đăng / trang. Có tất cả các chức năng bạn cần cho chủ đề của bạn.

snap của màn hình quản trị phân loại tùy chỉnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.