• Решено aleks

    (@aleks683)


    Всем привет, а ни кто не знает можно ли сделать для выбранных рубрик миниатюры записей по умолчанию?

    Я использую:

    add_action('save_post', 'my_template_thumbnail');
      
    function my_template_thumbnail($post_id) {
    $post_thumbnail = get_post_meta($post_id, $key = '_thumbnail_id', $single = true);
      if ( !wp_is_post_revision($post_id) ) :
        if ( empty($post_thumbnail) ) {
          update_post_meta($post_id, $meta_key = '_thumbnail_id', $meta_value = '8888');
        }
      endif;
    }

    Этот код делает, если миниатюры записи нет то проставляется картинка 8888
    А можно сделать например
    для рубрики 22 миниатюру 5555
    для рубрики 23 миниатюру 7777
    для всех остальных оставить 8888

    ???

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Так нельзя сделать?

    попробуйте и скажите.
    вместо

    
    if ( empty($post_thumbnail) ) {
    

    надо использовать что-то типа:

    
    if ( empty($post_thumbnail) && in_category(22) ) {
    

    Так нельзя сделать?

    Есть масса удобных плагинов.

    А какие плагины например? Что то ничего подобного не видел

    flector так вся тема слетела

    я не понимаю, когда говорят «вся тема слетела».
    как могла слететь тема, если этот код в админке у вас работает?
    возможно, что надо поменять in_category(22) на in_category('22'), если бы включили у себя debug режим и отображение php-ошибок — создавать сайт было бы намного проще.

    А какие плагины например? Что то ничего подобного не видел

    А искали? 🙂 https://wordpress.org/plugins/search.php?type=term&q=category+thumbnail

    Все разобрался я функцию заново начинал и поэтому выдавалась ошибка. Нужно просто было в одной функции все условия прописать и все! Спасибо Вам в очередной раз flector, снова выручили 😉

    P.S.: я все таки не сторонник плагинов, тем более когда задача стоит в пару строк это даже довольна таки глупо.

    я все таки не сторонник плагинов,

    Плагинопароноя лечится изучением матчасти 🙂

    тем более когда задача стоит в пару строк это даже довольна таки глупо.

    Пара строк для задачи:

    для рубрики 22 миниатюру 5555
    для рубрики 23 миниатюру 7777
    для всех остальных оставить 8888

    ??
    Править код (рискуя поломать и тп), вручную вписывать вместо того, что бы через админку выбрать..
    Да и просто по времени это целесообразней, чем тыкнуть пару раз мышей?
    Не, дело конечно хозяйское 🙂

    Ида, даже свой код для этого я бы оформил в плагин. Файл функций темы не для этого.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем SeVlad.
    • Ответ изменён 7 лет, 7 месяцев назад пользователем SeVlad.

    У меня возникла новая проблема, вот код:

    add_action('save_post', 'my_template_thumbnail');
      
    function my_template_thumbnail($post_id) {
    $post_thumbnail = get_post_meta($post_id, $key = '_thumbnail_id', $single = true);
      if ( !wp_is_post_revision($post_id) ) :
        if ( empty($post_thumbnail) ) {
          update_post_meta($post_id, $meta_key = '_thumbnail_id', $meta_value = '8316');
        }
        if ( empty($post_thumbnail) && in_category(176) ) {
          update_post_meta($post_id, $meta_key = '_thumbnail_id', $meta_value = '8995');
        }
    	if ( empty($post_thumbnail) && in_category(175) ) {
          update_post_meta($post_id, $meta_key = '_thumbnail_id', $meta_value = '8496');
        }
    	if ( empty($post_thumbnail) && in_category(177) ) {
          update_post_meta($post_id, $meta_key = '_thumbnail_id', $meta_value = '9015');
        }
        
      endif;
    }

    Из за вот этой строчки
    if ( empty($post_thumbnail) ) { всегда выводится автоматом миниатюра 8316

    даже когда категории 175,176,177

    А как сделать чтобы всегда выводилась картинка 8316, но когда категории 175,176,177 то и миниатюры соответственные??

    
    if ( empty($post_thumbnail) && !in_category(array(175,176,177)) ) {
    
Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Автоматические миниатюры записей по умолчанию» закрыта для новых ответов.