Подписывайтесь:


Технотрон » Web-разработки » WordPress 3.0 и миниатюры в старых темах

Сейчас многие держат свои блоги, а иногда и более серьезные и обширные ресурсы, на очень популярном движке Wordpress. Недавно вышла новая долгожданная версия этой CMS - Wordpress 3.0, скачать официальную английскую или локализированную версию можно с сайта http://ru.wordpress.org. В версии 3.0 исправлено более 1000 ошибок, добавлены интересные и полезные функции, такие как возможность задавать миниатюру для каждой записи стандартными средствами WordPress (больше не нужны произвольные поля и прочее). Вот о миниатюрах мы сейчас и поговрим.



Новая тема по-умолчанию для Wordpress называется "Twenty Ten", на примере которой можно увидеть все новые возможности WordPress 3.0. Также эта тема замечательно работает со вставкой миниатюр в запись.

Миниатюра - это небольшое изображение в тексте анонса к публикации. Как правило передает основную мысль записи и делает блог похожим на новостной журнал. К тому же использование миниатюр к новосятм это просто красиво. Старые темы выпущенные до версии WordPress 2.9 и не обновленные после выхода 3.0 не имеют в себе функции автоматического вывода миниатюр - просто раньше из положения выходили добавлением произвольных полей или просто вставкой картринки в запись.


Есть уже  несколько новых тем, которые также прекрасно справляются с поставленой задачей. Но у многих блоггеров используется уже устоявшаяся любимая тема оформления блога и менять ее только из-за миниатюр как-то не очень хочется. Данный материал призван помочь с интеграцией миниатюр в Wordpress 3.0, который работает со старыми темами оформления.

Итак. Сначала необходимо обновить версию движка своего блога до 3.0 или стандартными средствами Консоли управления (автоматическое обновление) или скачать с сайта http://ru.wordpress.org новую версию и залить новые файлы на хостинг поверх старых. При первом входе в Консоль управления необходимо будет обновить БД блога - это накак не грозит вам потерей данных, все останеться как было и будет работать. Понять сразу, что Wordpress обновился можно по тому, что исчезнет надпись вверху консоли о предложении обновиться.

Если после обновления на странице добавления новой записи Вы не находите блок "Миниатюра зписи" (как правило справа внизу), то значит Ваша тема не поддерживает добавление миниатюр. Значит будем учить старую тему новым способностям.
 
Для этого Вам необходимо вставить указанный ниже код в файл functions.php вашей темы.
add_action ( 'after_setup_theme', 'twentyten_setup' );
if ( ! function_exists ( 'twentyten_setup' ) ):
function twentyten_setup () {
add_theme_support ( 'post-thumbnails' );
}
endif;    


Вставлять его нужно после следующего кода (он, конечно можеть изменяться в зависимости от темы, но в целом он во всех темах похож):
Первый пример.
if ( function_exists ('register_sidebars') )
    register_sidebars (2);


Второй пример.
if ( function_exists('register_sidebar') )
register_sidebar(array('name' =>'Sidebar','before_widget' => '','after_widget' => '','before_title' => '<h3>','after_title' => '</h3>'));
register_sidebar(array('name' =>'Sidebar Child','before_widget' => '','after_widget' => '','before_title' => '<h3>','after_title' => '</h3>'));


Вот такой код получился у меня:
if ( function_exists('register_sidebar') )
register_sidebar(array('name' =>'Sidebar','before_widget' => '','after_widget' => '','before_title' => '<h3>','after_title' => '</h3>'));
register_sidebar(array('name' =>'Sidebar Child','before_widget' => '','after_widget' => '','before_title' => '<h3>','after_title' => '</h3>'));

add_action ( 'after_setup_theme', 'twentyten_setup' );
if ( ! function_exists ( 'twentyten_setup' ) ):
function twentyten_setup () {
add_theme_support ( 'post-thumbnails' );
}
endif;    
$options = array (
    array(    "name" => "Welcome", "type" => "title"),


Сохраните получившийся файл. После сохранения перейдите к странице добавления записи и, если все правильно, то Вы увидите искомый блок добавления миниатюры. С помощью него можно уже добвить миниатюры, но... они не будут работать, так как это только указание функции в теме.
 
 
 
 
Теперь нужно добавить код вывода миниатюр в файлы index.php, archive.php, search.php, category.php вашей темы, это зависит от того где Вы хотите выводить миниатюры, я вполне обошелся добавлением кода ввода в файл index.php. Вот этот код:

<?php if  ( function_exists ("has_post_thumbnail") && has_post_thumbnail () ) { the_post_thumbnail (array (400,400), array ("class" => "alignleft post_thumbnail")); } ?>


Данный код нужно вставлять до тега  the_content:

Вот то, что у меня вышло:
<?php lw_simple_date(); ?>
<?php if(function_exists('the_ratings')) { the_ratings(); } ?>
<?php if  ( function_exists ("has_post_thumbnail") && has_post_thumbnail () ) { the_post_thumbnail (array (400,400), array ("class" => "alignleft post_thumbnail")); } ?>
<?php the_content(''); ?>


400,400 – соответственно ширина и высота нашей миниатюры, можно менять. Поскольку в WordPress нет автоматической перегенерации картинок при изменении их размеров в меню Настройки — Медиафайлы. Теперь Ваши миниатюры будут правильно отображаться. Кстати, я указал размеры миниатюр 400 х 400, а в примере в окне задания миниатюры стоит 150 х 150 - это я сделал исходя из своих нужд. Вы же можете указать в коде the_post_thumbnail (array (150,150) (или то значение которое Вам нужно), чтобы все миниатюры были одинакового размера.

Wordpress миниатюры
Версия для печати
Обсудить статью на форуме


 автор: Technotron    12.07.2010    Комментариев: 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
smartbooks.org
Опрос
Как Вы попали на этот сайт?
Я постоянный посетитель
Из поисковой системы
С другого сайта
Из каталога
Кто-то посоветовал
Реклама
Status online
Сейчас на сайте: 30
Гостей: 27
Пользователи: 


Роботы: