пятница, 1 апреля 2011 г.

Вывод постов заданной рубрики на странице блога



Очень часто встречал у пользователей Wordpress необходимость вывода постов заданной рубрики на определенной странице.
То есть вы переходите на страницу в Вашем меню ,допустим http://Ваш блог/novosty и реальнополучаете архив рубрики ,допустим news. Создать свое, дополнительное меню могут не все ,так как не имеют достаточно знаний, и хотят использовать для этого уже готовое меню шаблона.
http://codex.wordpress.org/Template_Tags
    

          
                $posts_new = get_posts('category=11');

                foreach ($posts_new as $post_new) :
                    echo '

                    echo get_permalink($post_new->ID);

                    echo '">';
                    echo $post_new->post_title;
                    echo '';
                    echo '
';

                    if ( preg_match('//', $post_new->post_content, $matches) )
                       list($post_new->post_content,$junk) = explode($matches[0], $post_new->post_content, 2);

                    echo $post_new->post_content;
                  
                    echo '
';
                    
                    echo '

                    echo get_permalink($post_new->ID);

                    echo '">';
                    echo 'Читать далее »';
                    echo '';
                    echo '

';
                endforeach;
                ?>
                

        
Решений было достаточно много,в том числе самый распрастраненный способ это просто Редирект,допустим через какой-нибудь плагин.
Но это не есть хорошо,лишние переадресации нам не нужны.
Все делаем намного проще и красивее, при этом от Вас не требуеться вникать в суть этого способа, просто следуйте инструкциям:
1. Создаем новый файл в папке вашей темы,допустим news.php ,копируем в него полностью содержимое файла index.php Вашей, этой же темы.
2. Добавляем в самое начало файла следующий код
 /* Template Name: News */ ?>
(«News» — название нового доп. шаблона).
Находим строчку
 if (have_posts()) : while (have_posts()) : the_post(); ?>
и перед ней вставляем следующий код:
 query_posts("cat=X"); ?>
,где X — ID нужной рубрики. ID рубрики можно увидеть на конце URL , при ее редактировании.
3. Отправляемся в редактирование нужной страницы (тело страницы оставляем пустым) и меняем там«Шаблон по-умолчанию» на созданный «News», сохраняем.
Вот и все ,при необходимости действие повторить для других страниц.
Данный способ считаю самым правильным и технически грамотным.

Комментариев нет:

Отправить комментарий