Как выводить на главной странице только одну выбранную категорию?

Как выводить на главной странице только одну выбранную категорию, а не все последние записи?

и ещё…

как открыть для просмотра одного автора?

как отобразить автора в сообщении?

http://blog.mtrk.tv/

Ну, неужели никто не скажет? Меня тоже этот вопрос очень беспокоит… Ответьте плиз

Как выводить на главной странице только одну выбранную категорию, а не все последние записи?

Используйте функцию is_category ($category = ”) Она возвращает true, если текущий пост находится в указанной категории.

как отобразить автора в сообщении?
<?php the_author() ?>
Используйте функцию is_category ($category = '') Она возвращает true, если текущий пост находится в указанной категории.

В пхп я новичок, и не совсем понял, как именно это применить на мой случай… Вот в этот кусок кода надо добавить — это я понял.

            <?php if (have_posts()) : ?>
            <?php while (have_posts()) : the_post(); ?>
                <tr>
                    <td width="100%" colspan="3"><div ID="group_content"><a href="<?php the_permalink() ?> rel="bookmark" title="прямая ссылка: <?php the_title(); ?>"><?php the_title(); ?></a>
                    <?php the_content('/ далее... &raquo;'); ?>
                    <div class="post_attr"><?php the_time('<b>d</b> / m / Y @ G:i') ?> <!-- by <?php the_author() ?> --><br />
                    Раздел: «<?php the_category('| ') ?>» <?php edit_post_link('| Edit |', '', ''); ?></div></div>
                    </td>
                </tr>
            <?php endwhile; ?>
                <?php else : ?>

                    <h2 class="center">Not Found</h2>
                    <p class="center">Sorry, but you are looking for something that isn't here.</p>
                    <?php include (TEMPLATEPATH . "/searchform.php"); ?>

            <?php endif; ?>

Но как бы я это не пытался сделать — падают какие-то страшнейшие ошибки… Как прикрутить это условие?

Было бы здорово если бы такую полезную вещь как вывод определённой категории разжевали понятно, "для всех"…

Вот в приведенном выше примере:

<?php query_posts("cat=3"); ?>

<?php if (have_posts()) : ?>
...

Вывод только категории с номером 3.

Никого не хочу бесить, или смешить….

Но, куда это вставлять???? 😛

Открываете файл index.php, в нем находите начало приведенного кода. Добавляете то, что я написал. Пример выше.

В какой именно файл?

Я так понял что используемого шаблона….

Вставляя в таком виде как вы написали, получаю ошибку….

А вставляя только

<?php query_posts("cat=1"); ?>

перед строкой

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Получаю везде записи только этой рубрики…. Навигация бессильна… 🙁

Я же говорю, если можно – поподробнее…. :rolleyes:

Вот в приведенном выше примере:
<?php query_posts("cat=3"); ?>

<?php if (have_posts()) : ?>
...

Вывод только категории с номером 3.

Хорошо, я если я хочу выводить содержание какой-то категории не на главной, а на одной из страниц либо в каком-то посте? Что я должен прописать?

На какой странице?
Стандартно на главной выводятся посты из всех категорий в хронологич. порядке.
Если перейти в категорию, то там и так выводятся посты в хронологическом порядке из текущей категории.

Вы сформулируйте задачу точно.

Допустим, есть у меня статичная страница, на которой кратко рассказано о том, что такое плагины, отдельно у меня есть категория ПЛАГИНЫ, в которой публикуются статьи о новых плагинах. Задача: cделать на странице с описание ПЛАГИНОВ после текста обзор последних десяти (11, 12, неважно…) постов из категории ПЛАГИНЫ.
(При этом названия категорий могут вообще не выводится в сайдбаре, создавая видмость построения сайта на одних страницах…)

ну так и создайте специальный шаблон для этой страницы (путем копирования page.php например) и при создании этой страницы выберите этот спец. шаблон.
А в шаблоне все что вам надо и пропишите.
Кажется должно работать, если перед

 < ?php while (have_posts()) : the_post(); ? >

Добавить

< ?php query_posts('cat=Номер__нужной_категории'); ? >

Кстати, если взять и дать одинаковый урл категории и странице (пусть будет plaginy) при включенном плагине seo without category, то по адресу site.ru/plaginy/ будет вызываться не категория, а страница.
А по адресу например site.ru/plaginy/hello-word.html запись этой категории.
Одной проблемой меньше. Теперь на этой странице (Page) можно писать что угодно, относящееся к категории с таким же урлом. Получится логично.

ну так и создайте специальный шаблон для этой страницы (путем копирования page.php например) и при создании этой страницы выберите этот спец. шаблон.

я тупой :/ шаблон понял как создать – путем копирования page и замены в нем части кода. переименовав, выкладываю на фтп. как выбирать данный шаблон при создании страницы?

Кажется должно работать, если перед

 < ?php while (have_posts()) : the_post(); ? >

Добавить

< ?php query_posts('cat=Номер__нужной_категории'); ? >

Не работает…

Вот в приведенном выше примере:
<?php query_posts("cat=3"); ?>

<?php if (have_posts()) : ?>
...

Вывод только категории с номером 3.

Вот это точно работает! Спасибо!

ну так и создайте специальный шаблон для этой страницы (путем копирования page.php например) и при создании этой страницы выберите этот спец. шаблон.
А в шаблоне все что вам надо и пропишите.
Кажется должно работать, если перед

 < ?php while (have_posts()) : the_post(); ? >

Добавить

< ?php query_posts('cat=Номер__нужной_категории'); ? >

Так как все0таки испольщовать этот шаблон при создани страницы? Я немного не вьехал…

Ага, нашел в редакторе создания страницы Page Template/ А куда надо загрузить мой шаблон, чтобы он появился в виборе шаблонов?

Ага, нашел в редакторе создания страницы Page Template/ А куда надо загрузить мой шаблон, чтобы он появился в выборе шаблонов?

И сюда же вопрос по усложениею задачи. Если я хочу разбить страницу на два столбика, в каждом из которых выводяться категории с различными id – как это сделать?

Отвечайте пожалуйста, товарищы асы, иначе так и буду всех задалбывать ;):D:lol:

http://codex.wordpress.org/Pages в помощь
там очень хорошо написано про темплэйты
http://codex.wordpress.org/Template_Hierarchy про шаблоны вообще

Вот в приведенном выше примере:
<?php query_posts("cat=3"); ?>

<?php if (have_posts()) : ?>
...

Вывод только категории с номером 3.

один вопрос – как указать сколько записей показывать на одной странице?
или здесь используется то же значение что указывается в админке?

один вопрос  - как указать сколько записей показывать на одной странице?
или здесь используется то же значение что указывается в админке?

Кажется, да.

Или вот такой код возьмите:

<?php $posts = get_posts('numberposts=4&category=2');
foreach($posts as $post) :
setup_postdata($post); ?>
<hr>
<div class="date"><?php the_date(); ?> в <?php the_time(); ?></div>
<div id="post-<?php the_ID(); ?>">
<h4><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a></h4>
<?php the_content('Полная новость  &raquo;'); ?>
<p class="postmetadata"><?php edit_post_link('Редактировать', '', '  '); ?></p>
</div>
<?php endforeach; ?>

numberposts=4 4 посл. поста
category=2 из категории с id=2

ГМ, вариант с <?php query_posts("cat=3"); ?> работал в предыдущей теме, но моя новая тема очень легкая, и имеет намного меньше файлов, чем обычная. Поэтому работает, но на всех страницах выводится толькро посты данной категори. Я так понял, мне нужно скопировать часть кода из index.php, назвать по другому и заставить выводить другие категории и посты через этот файл. Так? Только может кто-то обьясит мои действия более детально?

По проблеме, описанной выше… (на один пост)
Я что-то слышал, о main.php/ Если я просто скопирую index.php и переименовав его в main.php, пропишу в нем

<?php query_posts("cat=3"); ?>

<?php if (have_posts()) : ?>
...

Вывод только категории с номером 3.
то єто будет работать? Или надо еще колупать другие шаблоні, чтобі заставить віводить главную страницу через main.php, а все остальные через index.php/ Или наоборот?… Как?

Вот в приведенном выше примере:
<?php query_posts("cat=3"); ?>
<?php if (have_posts()) : ?>
...

Вывод только категории с номером 3.

А как сделать, чтобы на эту страницу выводило посты из ВСЕХ категорий?

"А как сделать, чтобы на эту страницу выводило посты из ВСЕХ категорий?"
соответственно убрать параметр из функции:
query_posts();

"А как сделать, чтобы на эту страницу выводило посты из ВСЕХ категорий?"
соответственно убрать параметр из функции:  query_posts();

Возвращаемся к нашим баранам. Делал так:
<?php get_header() ?>
<?php query_posts(); ?>
Не помогает. Виден только заголовок этой страницы и приписки о категории и времени создания
к тому же, в месте расположения кода пишет: 😐
Warning: Missing argument 1 for query_posts() in сайт.info/public_html/wp-includes/functions.php on line 1387

Признаюсь, ошибся… параметр для этой функции обязателен:
так что <?php query_posts(”); ?> А после этой строчки обычный код для вывода постов

Но, блин, я промучался где-то около получаса над вашей проблемой, но так и не смог заставить выводиться записи не полностью, а только до тега more
странно, ничего не понимаю, пробовал по-разному, но один и тот же код на произвольной странице выводит полные записи, а на главной – анонсы…
Надеюсь, Prost вам это не критично… иначе я пасс 🙂 давайте звать на помощь еще кого-нибудь! "Леопольд, выходи!"

Кстати, дайте ссылку на ваш сайт, мне уже стала интересна его судьба 🙂

Вдогонку, в кодексе наткнулся на плагин Improved Include Page
http://www.vtardia.com/improved-include-page/
быть может, он вам подойдет
если никто больше не поможет разобраться

В общем, задачу WordPress as a CMS я, похоже, решил. 🙂

1. В корне – рядом с index.php поместил свой index.html с нужным дизайне слепленным с пом. визуального редактора. Всё. Работает. Открывает при заходе на сайт страницу index.html . Изъянов, пока не нашел. Всё как хотел. Главная – любой дизайн. Коды шапки сделаны в слоях div – так же как в header.php шаблона – не отличишь и в любой момент можно изменить как захочется. Все статичные страницы открываются с урлами м-сайт/blog/page1 и главная страница имеет индивидуальный (любой) дизайн. При желании index.html можно не делать, а сделать весь индивидуальный дизайн в index.php шаблона.

2. Создал страницу blog.php сделав копию index.php из папки шаблона, переименовал и поместил её в папку шаблона к его файлам. В ней прописал:
Код указывающий, что для страницы /blog/нужно использовать этот шаблон blog.php :

<?php
/*
Template Name: blog
*/
?>

а также код который выводит на эту страницу (в этот шаблон) все посты: 😉

<?php get_header(); ?>
<?php query_posts(have_posts()); ?>

т.е. в строку <?php query_posts(); ?> вставил have_posts() – т.к. без этого глючило, и получил <?php query_posts(have_posts()); ?>
Полный код blog.php :

<?php
/*
Template Name: blog
*/
?>
<?php get_header(); ?>
<?php query_posts(have_posts()); ?>

<div id="content">	
       <div id="maincontent">
<div class="post">
		<?php include (TEMPLATEPATH . '/theloop.php'); ?>
</div><!-- end .post-->	
<?php include (TEMPLATEPATH . '/rsidebar.php'); ?>
	</div><!-- end #maincontent-->
<?php get_sidebar(); ?>
</div><!-- end #content-->
<?php get_footer(); ?>

Дальше: в админке создал статичную страницу blog и при её создании указал – для этой страницы использовать шаблон (Page Template): blog
Материалы: http://codex.wordpress.org/Pages#WordPress_as_a_CMS код гл. страницы BuildYourself.ru – жизненный новострой(http://buildyourself.ru): от ildar111
конкретнее оттуда – строку <?php while (have_posts()) : the_post(); ?> из которой и вычленил кусок кода have_posts() которого не доставало для решения.
Т.о. имеем: Движок CMS для сайта на основе WordPress в котором: 😎
1. Можно делать любой дизайн главной страницы как в формате index.php так и index.html – если надо.
2. Блог открывается не на главной странице, а на своей странице по ссылке БЛОГ ( имя_сайта/blog/) из меню (или из любого места).
При этом дизайн страницы БЛОГ также можно сделать любой на основе её шаблона blog.php
3. Можно иметь ещё до 10-15 статичных страниц (по некот. данных при большем их кол-ве движок притормаживает) каждую, если надо – со своим дизайном на основе инд. шаблона сделанного по типу шаблона blog.php и много динамичных страниц в категориях и под-категориях блога.
4. Каждую категорию (подкатегорию) блога можно исключить кодами в шаблоне из общего меню и ссылку на неё вывести в шапку, главное или особое меню, или в любое место. При этом на эту категорию (подкатегорию) также при необходимости можно задать свой шаблон. Всего м.б 3 уровня иерархии в глубину: индекс_сайта/категория/подкатегория/запись(страница, пост). Дальше нельзя – предел движка: тормозит и глючит.

Должно работать. Пробуйте, только не забывайте оставлять бэкап файлика 😉

Столкнулся с проблемкой при переводе сайта на эту структуру.
До этого сайт был сделан через раздел лежащий в отдельной папке /blog/ и статичные страницы были вида м-сайт/blog/page1
Теперь я переделал сайт на эту структуру (см. запись выше), убрал папку /blog/, движок ещё не переустанавливал.
.htaccess тоже исправил – стёр запись blog/.
Но почему-то все страницы по-прежнему открываются по ссылкам м-сайт/blog/page1, хотя должны быть вида м-сайт/page1
Вот я перед дилемой: переведутся ли ссылки страниц в вид: м-сайт/page1 если я переустановлю движок, или нет, или вообще всё запутается.

Отбой! С этим справился:
[quote]В General Options (Общие) админки есть пункт (сразу забыл его глянуть):
Blog address (URI): нужно мой-сайт.com а было мой-сайт.com/blog/ т.к. до этого блог был в папке /blog/
If you want your blog homepage to be different than the directory you installed WordPress in, enter that address here.[/quote]
Как сделать правильно эту переделку и переустановку движка? 🙂
До этого я пару раз переустанавливал движок так: сносится всё кроме папки wp-content, И перед абгрейдом отключить все плагины!
и устанавливал остальное заново в ту же базу. Вроде было нормально. А сейчас из-за смены структуры сайта боязно – не знаю как там и что в этом случае в базе прописывается. Это и есть правильный процесс переустановки, или ещё как-то делается? :rolleyes:
[quote]В общем, так и переустановил на версию 2.0.9.
(начитавшись MAXа также решил не выпендриваться, а подождать, пока новые версии отладят. Думаю, ждать придётся до 2.2. … 2.3. …[/quote]

1. Что значит

... оставлять бэкап файлика ;)

бэкап базы?
Кстати на одном хостинге у меня проблемка: плагин бэкап не работает – пишет:

The backup file could not be saved.  Please check the permissions for writing to your backup directory and try again.
Creating backup file...
Could not open the backup file for writing!

Я уж везде 777 где можно поставил. На др. хостинге – нормально. Что я здесь мог пропустить? :/

1. Что значит [quote=Arien]... оставлять бэкап файлика ;)

бэкап базы?[/quote]
Я имела ввиду, что если код правите, то оставьте на всякий случай оригинал файлика, чтоб вернуть, если что.

Я уж везде 777 где можно поставил. На др. хостинге - нормально. Что я здесь мог пропустить?  :/
Кстати на одном хостинге у меня проблемка: плагин бэкап не работает - пишет:
The backup file could not be saved.  Please check the permissions for writing to your backup directory and try again.
Creating backup file...
Could not open the backup file for writing!

А папка, в которую писать собираетесь, существует?

Я имела ввиду, что если код правите, то оставьте на всякий случай оригинал файлика, чтоб вернуть, если что.

А, ясно! Так я ещё до того как – обычно на компе копии всего оставляю, да правлю через CutFPT – и быстрее, и нагляднее, и откат есть!

А папка, в которую писать собираетесь, существует?

Да, есть … с 777 … :rolleyes:

Anonymous
Отправить
Ответ на: