Установка миниатюры для архивных шаблонов

21 сент. 2012 г., 02:55:23
Просмотры: 13.6K
Голосов: 7

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

Я думал о написании функции, которая будет фильтровать загруженные изображения записи и сопоставлять шаблон с именем файла. Но это может быть несколько сложно.

Также я знаю, что есть настройки темы. Но это кажется слишком громоздким для управления.

Как бы вы порекомендовали реализовать это, чтобы облегчить администрирование изображений записи (Тема → Заголовок) и упростить поддержку...

3
Комментарии

Просто чтобы уточнить: вы пытаетесь связать изображение с шаблоном/страницей архива результатов archive.php?

Ben HartLenn Ben HartLenn
21 сент. 2012 г. 03:21:21

Да, в двух словах я пытаюсь связать избранные изображения с шаблонами архива.

Jason McCreary Jason McCreary
21 сент. 2012 г. 05:47:24

Я не совсем понимаю. Вы хотите установить изображение заголовка для шаблона архива? Если да, то это так же просто, как if( is_archive() ) {..ваше изображение..}. Если вы хотите изменять его из админки, тогда действительно нужно создать страницу настроек для этого. (Возможно, есть плагины для этого, не в курсе)

xsonic xsonic
21 сент. 2012 г. 15:36:24
Все ответы на вопрос 6
0

В WordPress существует множество архивов. Архивы меток, архивов по датам, архивов категорий, архивов терминов, архивов авторов. Какой именно архив вы имеете в виду?

Вы можете начать с попытки использовать плагин Taxonomy Images http://wordpress.org/extend/plugins/taxonomy-images/

18 окт. 2012 г. 03:40:50
0

Это устарело, но это первый результат, который появляется в Google по данной теме.

Способ, который я нашел для решения этой проблемы — создать новую страницу. Не давайте ей то же имя, что и у страницы архива (WordPress не любит страницы с именами, совпадающими с архивными, это вызывает проблемы), вы можете назвать ее как угодно иначе. Установите изображение записи, а затем вызовите его в шаблоне архива с помощью этого кода:

$post_id = 8; 
$queried_post = get_post($post_id);
$src = wp_get_attachment_image_src(get_post_thumbnail_id($queried_post->ID), '') ;
$thumb_id = get_post_thumbnail_id($post_id);
?>
<img src="<?php echo $src[0]; ?>" class="img-responsive" alt="Изображение записи" title="Изображение записи" />

Разберем по частям:

$post_id = 8;

это ID вашей новой страницы.

$src = wp_get_attachment_image_src(get_post_thumbnail_id($queried_post->ID), '') ; 

находит изображение записи, прикрепленное к этой странице.

<img src="<?php echo $src[0]; ?>" class="img-responsive" alt="Изображение записи" title="Изображение записи" /> 

выводит изображение записи с вашей новой страницы.

4 окт. 2016 г. 11:47:06
0

вы можете сделать это через css, определив область изображения заголовка в вашем archive.php и установив фоновое изображение в style.css

или вы можете использовать плагин Dynamic Headers http://wordpress.org/extend/plugins/dynamic-headers/ (работает отлично, несмотря на то, что не обновлялся с 2010 года)

15 окт. 2012 г. 22:09:15
0

Отвечаю с опозданием, но, кажется, этот плагин решает исходный вопрос: http://wordpress.org/plugins/categories-images/

Он позволяет администратору выбрать «избранное изображение» для конкретной категории, метки или таксономии в панели редактирования таксономии. Затем его можно использовать в архивах темы (например, в archive.php), выводя z_taxonomy_image_url();.

Если вы предпочитаете написать собственное решение, возможно, стоит изучить код этого плагина для вдохновения.

7 мар. 2014 г. 17:08:46
0

Я думаю, вам стоит использовать ручной метод, примерно такой:

  1. зайдите на страницу "РЕДАКТИРОВАНИЕ" каждой категории и в описании разместите следующее:
    [image url="https://upload.wikimedia.org/wikipedia/commons/0/0c/Bunker_in_Albanian_Alps.jpg"]
  1. получите изображение для категории:
    if (is_archive())   {
        if (!empty($GLOBALS['wp_query']->queried_object->description) )  { 
            $cat_description =$GLOBALS['wp_query']->queried_object->description); 
                //примечание: с других страниц вы можете получить описание категории через:  get_term('1533' , 'category')->description;  
            preg_match('/url\=\"(.*?)\"/si', $cat_description, $new);
            if(!empty($new[1])) {
                $found_image= $new[1];
            }
        }
    }

теперь вы можете использовать это изображение где угодно, в head или на странице...

4 окт. 2016 г. 12:12:15
0

YOAST! Premium делает это из коробки.

Однако я использую ACF, где могу создать страницу настроек, на которой добавил повторяющееся поле, где могу установить изображение для записи для каждого типа поста.

Затем, с помощью функции ниже, добавленной в мой functions.php, я вызываю необходимые метатеги в архивах типов записей, для которых определил изображение записи.

function custom_featured_archive_image() {
    $o = get_field("featured_images", "option");
    if (is_array($o)) {
        foreach($o as $option) {
            if (is_post_type_archive($option["post_type"])) {
                $image_id = $option["image"];
                $image_url = wp_get_attachment_image_src($image_id, "original");
                $mime_type = get_post_mime_type($image_id);
                
                echo '
                    <meta property="og:image" content="'.$image_url[0].'">
                    <meta property="og:image:width" content="'.$image_url[1].'">
                    <meta property="og:image:height" content="'.$image_url[2].'">
                    <meta property="og:image:type" content="'.$mime_type.'">
                    <meta name="twitter:image" content="'.$image_url[0].'">
                ';

            }
        }
    }
}
add_action('wp_head', 'custom_featured_archive_image', 0);
1 сент. 2022 г. 21:09:55