Мне нужно исключить одну категорию из показа на странице категорий.
Обычный способ < ?php query_posts($query_string . ‘&cat=-104’); ? > не работает.
Смотрела в кодексе – не нашла как это можно сделать по другому.
Вот код файла category.php:
<?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>
<?php if (is_category()) { ?>
<h2 id="archiv">Содержимое рубрики "<?php echo single_cat_title(); ?>"</h2>
<?php } ?>
<div class="box">
<?php if (count(get_categories('child_of='.$cat)))
{
echo '<h5>Подрубрики:</h5>';
echo '<ul class="cat">';
wp_list_cats('show_count=1&title_li=&use_desc_for_title=false&child_of=' . $cat);
echo '</ul>';
}
else ;
?>
<?php if (is_category() and get_category($cat)->parent) { ?>
<h5>В рубрике "<?php echo single_cat_title(); ?>" опубликованых статей: <?php echo $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts INNER JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id) INNER JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id) WHERE $wpdb->term_taxonomy.taxonomy = 'category' AND $wpdb->term_taxonomy.term_id = '$cat' AND post_type = 'post' AND post_status = 'publish'"); ?></h5>
<?php } ?>
<?php function get_posts_count_per_cat($cat = 0) {
global $wpdb;
$cat = ereg_replace("[^0-9]","",$cat);
return $wpdb->get_var("select count from $wpdb->term_taxonomy where term_id = $cat");
} ?>
<ul class="cat">
<?php
query_posts("cat=$cat&showposts=1000");
if (have_posts()) : while (have_posts()) : the_post(); ?>
<?php
$k = get_the_category($post->ID);
if ( $k[0]->cat_ID == $cat ) {
?>
<li>
<?php
echo '<a href="'; the_permalink(); echo'">';
the_title();
echo '</a>';
?>
</li>
<?php } ?>
<?php endwhile; else: echo '<h5>В этой рубрике пока нет записей</h5>'; endif; ?>
</ul>
</div>
<?php
$order = "&orderby=cost&order=DESC";
$s2 = ' selected="selected"';
if ($_POST['select'] == 'title') { $order = "&orderby=title&order=ASC"; $s1 = ' selected="selected"'; $s2 = ''; }
if ($_POST['select'] == 'newest') { $order = "&orderby=cost&order=DESC"; $s2 = ' selected="selected"'; }
if ($_POST['select'] == 'oldest') { $order = "&orderby=cost&order=ASC"; $s3 = ' selected="selected"'; $s2 = ''; }
?>
<?php $posts = query_posts($query_string . $order); ?>
<?php if (have_posts()) : ?><?php while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h2>
<div class="post">
<?php the_excerpt(); ?>
</div><!-- end post -->
<?php endwhile; ?>
<?php else : ?>
<h2>Файл не найден</h2>
<p>Извините, по вашему запросу ничего не найдено.</p>
<?php endif; ?>
Помогите, пожалуйста решить эту проблему.
Эти ссылки не помогли?
http://forum.maxsite.org/viewtopic.php?id=577
http://wordpress.org/support/topic/146129
Эту в Кодексе смотрели?
http://codex.wordpress.org/Template_Tags/query_posts#Exclude_Categories_From_Your_Home_Page
спасибо за ссылки
Help Desk, спасибо – проблема решена.