26

Re: Исключить определенную категорию с главной

По-моему, самое правильное решение приведено в Кодексе:

If you want to preserve that information, you can use the variable $query_string in the call to query_posts().

For example, to set the display order of the posts without affecting the rest of the query string, you could place the following before The Loop:

query_posts($query_string . "&order=ASC")

[signature]Есть ли смысл просить инструкцию по регулировке карбюратора, если не знаешь, в каком из багажников находится двигатель?[/signature]

27

Re: Исключить определенную категорию с главной

а при этом переходы по страницам постов будут работать? в приведенном мной хаке - работают.

WP rocks & rolls!

28

Re: Исключить определенную категорию с главной

Порой мне кажется, что есть люди, которые хранят файлы на каменных скрижалях.

[signature]Есть ли смысл просить инструкцию по регулировке карбюратора, если не знаешь, в каком из багажников находится двигатель?[/signature]

29

Re: Исключить определенную категорию с главной

smile

время - не только деньги, но и жизнь.

WP rocks & rolls!

30

Re: Исключить определенную категорию с главной

sonika пишет:

ОДИН ИЗ ВАРИАНТОВ:

Основной цикл (loop) для файла index.php темы будет выглядеть так:

<?php $top_query = new WP_Query('cat=-1&showposts=10'); ?>
<?php while($top_query->have_posts()) : $top_query->the_post();
$first_post = $post->ID; ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php the_permalink() ?>" rel="bookmark"
title="Permalink: <?php the_title(); ?>"><?php the_title();
?></a></h2>
<div class="entry">
<?php the_content('Далее…'); ?>
</div>
</div>
<?php endwhile; ?>

Исключена категория  с id=1 (cat=-1)
Выводятся посл. 10 постов (showposts=10)

UPD 28.05.2007
Можно воспользоваться плагином Category Visibility

Что-то после этого, на всех страницах (следующая и прерыдущая) отображаются одни и те же записи

31

Re: Исключить определенную категорию с главной

http://www.sonika.ru/blog/wordpress/query-posts-navigation.htm

Едет вебмастер в поезде и слышит: <td></td> … <td></td> … <td></td>
шаблоны Темы

32

Re: Исключить определенную категорию с главной

Ещё одна проблема:
заспамили коменты, была сильная нагрузка на сайт. Теперь новости отображаются по дате в обратном порядке. Знаю, есть настройки:

Orderby Parameters

Sort retrieved posts by this field.

    * orderby=author
    * orderby=date
    * orderby=category
    * orderby=title
    * orderby=modified
    * orderby=modified
    * orderby=menu_order
    * orderby=parent
    * orderby=ID
    * orderby=rand

Also consider order parameter of "ASC" or "DESC"

http://codex.wordpress.org/Template_Tags/query_posts

Но как их вставить в функцию?

sasharp пишет:
<?php
function myFilter($query) {
if ($query->is_feed || $query->is_home || $query->is_archive) {
        $query->set('cat','-15');
    }

return $query;
}

add_filter('pre_get_posts','myFilter');
 ?>

Выручайте, тут я вообще ноль:/

33

Re: Исключить определенную категорию с главной

sasharp пишет:

Ещё одна проблема:
заспамили коменты, была сильная нагрузка на сайт. Теперь новости отображаются по дате в обратном порядке.

Для начала посмотрите, какой SQL запрос генерируется, может там и так стоит нужный порядок.

Как недавно выяснилось, ORDER BY post_date DESC не всегда сортирует посты в обратном хронологическом порядке (сначала последние). Чесно говоря, никогда б не подумал, что такое возможно.

[signature]Есть ли смысл просить инструкцию по регулировке карбюратора, если не знаешь, в каком из багажников находится двигатель?[/signature]

34 (28-03-2008 03:07:36 отредактировано sasharp)

Re: Исключить определенную категорию с главной

Похоже, проблема в functions.php

#
Warning: Cannot modify header information - headers already sent by (output started at /homepages/8/d180102457/htdocs/wp-content/themes/lavrentisdark-10/functions.php:6) in /homepages/8/d180102457/htdocs/wp-includes/pluggable.php on line 391

Раньше всё работало нормально, до того, как начали спамить в комментах. Даже и не знаю, что могло повлиять... Удаляю из functions.php - всё нормально, но мне надо исключить категорию. Как быть? Что посоветуете?

functions.php выше постом

35 (10-12-2010 22:13:57 отредактировано OXY1ne)

Re: Исключить определенную категорию с главной

Не могу найти решение.

Задача следующая. Нужно на главной странице выводить. к примеру рубрики id4 id7 id9 и не выводить id1 id2 id8.
Как это реализовать?

Спасибо за Ваши ответы, ценю потраченное время!

Re: Исключить определенную категорию с главной

OXY1ne пишет:

Не могу найти решение.

Задача следующая. Нужно на главной странице выводить. к примеру рубрики id4 id7 id9 и не выводить id1 id2 id8.
Как это реализовать?

Для вывода записей в WordPress используется цикл, называемый "The Loop" и имеющий обычно такой вид:

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
//Тут Ваш код
<?php endwhile; ?>

Если перед циклом "The Loop" прописать функцию query_posts с нужными нам параметрами, то мы сможем получить тот результат, который нам требуется. Вот пример такого использования:

<?php query_posts('cat=-1,-2,-3'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
//Тут Ваш код
<?php endwhile; ?>

Код из данного примера выводит на главную страницу записи из всех категорий, кроме категорий с ID 1, 2 и 3.

Если вам требуются несколько другие результаты, то для достижения рекомендую воспользоваться следующими примерами использования функции query_posts:

query_posts('cat=-3') - Не показывать категорию id которой равно 3;
query_posts('cat=-1,-2,-3') - Не показывать категории, id которых равны 1, 2 и 3;
query_posts('cat=2,6,17') - Вывести категории с id равным 2, 6 и 17;
query_posts('category_name=WordPress') - Вывести категорию с названием “WordPress”;
query_posts('name=Hello World') - Вывести один пост с названием “Hello World”;
query_posts('p=5') - Вывести один пост, id которого равно 5;
query_posts('page_id=7') - Вывести страницу id которой равно 7;
query_posts('pagename=about') - Вывести страницу с названием “about”;
query_posts('cat=18&showposts=5') - Вывести 5 постов из категории с id=18;
query_posts('cat=3&orderby=date&order=ASC') - Вывести посты из категории id которой равно 3, сортировать по дате в хронологическом порядке(DESC - в обратном порядке);
query_posts('posts_per_page=10') - Вывести 10 постов на страницу (при значении -1 выводит все посты);
query_posts('cat=3&year=2008') - Вывести посты из категории с id=3 за 2008 год;
query_posts('orderby=rand&showposts=3&cat=3') - выводин рандомно, т.е. случайно 3 записи из 3 категории;
query_posts('orderby=rand&showposts=3') - выводит случайно 3 записи из всех категорий;
query_posts('meta_key=cars&meta_value=volvo') - выводит список постов с произвольным полем “cars” и значением этого поля volvo.