Всем известно, что в WordPress можно задавать миниатюры для постов. Только вот пользуются этим не многие — по привычке мы вставляем картинки вручную в текст статьи. И совсем немногие знают, что WordPress, начиная с версии 2.9, имеет встроенную поддержку миниатюр. Как добавить миниатюры в тему WordPress, настройка миниатюр, как вывести миниатюру в статье — обо всем этом сегодняя статья.
Добавляем поддержку миниатюр в WordPress. Функция post-thumbnails
Добавить в вашу текущую тему поддержку миниатюр достаточно легко — достаточно прописать в файле functions.php
вот такой код:
add_theme_support('post_thumbnails');
Если вы хотите добавить миниатюры только в посты, пропишите вот такой код:
add_theme_support( 'post-thumbnails', array( 'post' ) );
и, соответственно, для страниц:
add_theme_support( 'post-thumbnails', array( 'page' ) );
К слову сказать, используя add_theme_support
можно добавить постинг автоматических ссылок на RSS (add_theme_support( 'automatic-feed-links' );
) или добавить пользовательские форматы постов (add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
)
Добавляем миниатюры в запись
После того, как мы добавили в тему поддержку миниатюр, нам остается вывести их в постах. Сделать это можно добавив вызов функции в index.php
или loop.php
в зависимости от вашей темы:
the_post_thumbnail();
Более правильное применение — сначала проверить есть ли миниатюра у поста, а уж потом вывести:
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
Еще один вариант создавать миниатюры
Все бы хорошо, но для того чтобы миниатюры выводились в старых постах, понадобиться отредактировать каждую статью и назначить ей миниатюру через админ панель. Есть еще один способ — программный. Суть такова, что в статье ищется первая картинка и в нужном месте она выводиться в нужных размерах. Ниже приведу код, который позволяет это реализовать.
Эту часть необходимо вставить в файл function.php
:
function zt_get_thumbnail($postid=0, $size='thumbnail', $attributes='') {
if ($postid<1) $postid = get_the_ID();
if ($images = get_children(array(
'post_parent' => $postid,
'post_type' => 'attachment',
'numberposts' => 1,
'post_mime_type' => 'image', )))
foreach($images as $image) {
$thumbnail=wp_get_attachment_image_src($image->ID, $size);
?>
/>
< ?php
}
else {
echo '
';
}
}
function imagesrc() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/
/i', $post->post_content, $matches);
$first_img = $matches [1] [0];
if (!($first_img))
{
$attachments = get_children(array('post_parent' => get_the_ID(), 'post_type' => 'attachment', 'post_mime_type' => 'image', 'orderby' => 'menu_order'));
if (is_array($attachments))
{
$count = count($attachments);
$first_attachment = array_shift($attachments);
$imgsrc = wp_get_attachment_image_src($first_attachment->ID, 'large');
$first_img = $imgsrc[0];
}
}
return $first_img;
}
?>
А вот так будет выглядеть код для index.php
или loop.php
:
Вот, собственно и все. Если Ваш знак зодиака лев и вы положительно относитесь к астрологии, то Вы можете узнать историю знака, а также гороскоп на сайте http://www.sonnik-online.net.
Уведомление: Wordpress Fix: создаем пользовательские размеры изображений в Wordpress. Плагин для Wordpress Simple Image Sizes | RusDigi.org
Уведомление: Wordpress Fix: меню в Wordpress - настройка стилей | RusDigi.org
добавил код в конец файла function.php выдает ошибки и не работает(((
попробуйте так:
if ( function_exists( ‘add_theme_support’ ) ) {
add_theme_support( ‘post-thumbnails’ );
}
дабавил такой код в функции. в результате получаю возможность добавления миниатюр в редактировании постов или страниц, но чтобы эти миниатюры ещё и отражались, наверное нужно ещё и в page.php и single.php добавлять? Что-то вроде (взял у другой темы):
<?php if($thumb » && get_option(‘personalpress_page_thumbnails’) == ‘on’) { ?>
Как быть?
код некорректно похоже отображается, но вопрос остаётся)