WordPress Fix: добавляем в тему миниатюры WordPress

Have a question? Ask in chat with AI!

wordpress логоВсем известно, что в WordPress можно задавать миниатюры для постов. Только вот пользуются этим не многие — по привычке мы вставляем картинки вручную в текст статьи. И совсем немногие знают, что WordPress, начиная с версии 2.9, имеет встроенную поддержку миниатюр. Как добавить миниатюры в тему WordPress, настройка миниатюр, как вывести миниатюру в статье — обо всем этом сегодняя статья.

[adsense]

Добавляем поддержку миниатюр в 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:


< ?php zt_get_thumbnail(); ?>

Вот, собственно и все. Если Ваш знак зодиака лев и вы положительно относитесь к астрологии, то Вы можете узнать историю знака, а также гороскоп на сайте http://www.sonnik-online.net.


6 комментариев для “0

  1. Уведомление: Wordpress Fix: создаем пользовательские размеры изображений в Wordpress. Плагин для Wordpress Simple Image Sizes | RusDigi.org
  2. Уведомление: Wordpress Fix: меню в Wordpress - настройка стилей | RusDigi.org
    1. попробуйте так:
      if ( function_exists( ‘add_theme_support’ ) ) {
      add_theme_support( ‘post-thumbnails’ );
      }

      1. дабавил такой код в функции. в результате получаю возможность добавления миниатюр в редактировании постов или страниц, но чтобы эти миниатюры ещё и отражались, наверное нужно ещё и в page.php и single.php добавлять? Что-то вроде (взял у другой темы): 

        <?php if($thumb » && get_option(‘personalpress_page_thumbnails’) == ‘on’) { ?>

        Как быть? 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Предыдущая запись Google запустил Google+ API
Следующая запись sIndexer v1.2 — индексатор сайтов