Как добавить пользовательскую гиперссылку к "Изображению записи" и the_post_thumbnail()

27 апр. 2011 г., 05:06:23
Просмотры: 2.81K
Голосов: 1

Я добавил в свою тему возможность отображать "Изображение записи" для поста. Однако сейчас я пытаюсь разобраться (1) Как назначить гиперссылку для изображения и (2) Как вызвать the_post_thumbnail() так, чтобы она оборачивала изображение в ссылку.

Я не могу найти, где это поддерживается в текущей версии WP, но думаю, что просто что-то упускаю.

<div class="entry">
<?php if(has_post_thumbnail() && get_option('theme_show_featured_image'))
      the_post_thumbnail('large', array(
     'class' => 'alignleft', 
     'style' => 'margin:0 10px 10px 0;')); ?>
<?php the_content('<p class="serif">Читать далее &raquo;</p>'); ?>
0
Все ответы на вопрос 2
2

Я предполагаю, что вы хотите вывести это внутри the_content()?

Вероятно, вам нужно будет определить шорткод, который будет выводить the_post_thumbnail(). Вы можете либо определить шорткод для принятия URL в качестве аргумента, либо обернуть шорткод HTML-тегами ссылки.

РЕДАКТИРОВАТЬ:

Предполагая, что вы уже выводите the_post_thumbnail() внутри the_content(), вы можете добавить произвольное поле, в которое пользователь вводит URL, и затем, если URL присутствует, выводить теги ссылки вокруг вызова the_post_thumbnail().

27 апр. 2011 г. 05:27:35
Комментарии

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

Scott B Scott B
27 апр. 2011 г. 05:43:46

Как насчёт использования произвольного поля? (См. правку в ответе.)

Chip Bennett Chip Bennett
27 апр. 2011 г. 06:22:23
1

Используйте функцию get_the_post_thumbnail() для получения миниатюры записи. Она возвращает строку с изображением вместо немедленного вывода.

Также добавьте Произвольное поле к записи с именем, например, URL-for-featured-image, и укажите URL, на который должно вести изображение, в качестве значения. Получите его содержимое с помощью get_post_custom_values('URL-for-featured-image') и используйте результат в атрибуте href гиперссылки.

<?php 
  if(has_post_thumbnail() && get_option('theme_show_featured_image'))
  {
    $img = get_the_post_thumbnail($post->ID, 'large'); 
    $url = get_post_custom_values('URL-for-featured-image');
    /* ваш код здесь */

  }
?>
27 апр. 2011 г. 09:01:12
Комментарии

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

Scott B Scott B
28 апр. 2011 г. 20:17:30