Как автоматически линковать миниатюры записей?
Некоторые темы для WordPress выводят миниатюры записей без ссылки на саму запись. Этим грешат даже старые дефолтные темы движка вроде Twenty Twelve и Twenty Thirteen. Не сказать, чтобы это было критично, но все-таки люди уже давно привыкли к тому, что картинка записи является ссылкой на саму запись (так выводятся новости на всех популярных новостных ресурсах вроде Lenta.ru и других). Эту ситуацию можно исправить одним простеньким сниппетом кода, который вам необходимо добавить в файл functions.php вашей темы:
//линковка миниатюр ссылками на запись start function wph_auto_link_thumbnail($html, $post_id, $post_image_id) { $html = '<a href="' . get_permalink($post_id) . '" title="' . esc_attr(get_the_title($post_id)) . '">' . $html . '</a>'; return $html; } add_filter('post_thumbnail_html', 'wph_auto_link_thumbnail', 10, 3); //линковка миниатюр ссылками на запись end |
Данный код можно совместить с кодом, проставляющим title и alt для миниатюр:
//линковка миниатюр ссылками на запись (плюс alt и title) start function wph_auto_link_thumbnail($html, $post_id, $post_image_id) { $html = '<a href="' . get_permalink($post_id) . '" title="' . esc_attr(get_the_title($post_id)) . '">' . $html . '</a>'; $post_title = esc_attr(get_the_title($post_id)); //добавляем alt $html = preg_replace('/(alt=")(.*?)(")/i', '$1'.$post_title.'$3', $html); //добавляем title $html = str_replace('/>', 'title="'.$post_title.'" />', $html); return $html; } add_filter('post_thumbnail_html', 'wph_auto_link_thumbnail', 10, 3); //линковка миниатюр ссылками на запись (плюс alt и title) end |
В этом случае атрибут title у ссылки на запись вы вполне можете из кода удалить, так как все равно браузер будет показывать title-атрибут миниатюры.