Категории на страницах

Возможно ли не отображать категории на созданных страницах? Я хочу на основе WP создать сайт с разными разделами и лишь в блоге мне необходимы категории, а вот на дополнительных страницах они мне не нужны.

Тут нужно уточнить. Вам не нужны тольто отображение категорий с постами, но само меню (sidebar) нужно оставить? Или меню вообще не нужно?

Если требуется убрать меню целиком, то проверьте наличие в шаблоне файла page.php. Если его нет, то скопируйте его из index.php. Откройте page.php, найдите в нем строчку:

<?php get_sidebar(); ?>

Удалите ее.

Тут нужно уточнить. Вам не нужны тольто отображение категорий с постами, но само меню (sidebar) нужно оставить? Или меню вообще не нужно?

Если требуется убрать меню целиком, то проверьте наличие в шаблоне файла page.php. Если его нет, то скопируйте его из index.php. Откройте page.php, найдите в нем строчку:
<?php get_sidebar(); ?>

Удалите ее.

Мне не нужны только категории, навигация по сабстраницам нужна.

Ясно. Тогда алгоритм такой.

Первым делом смотрим наличие page.php – именно в нем выводятся страницы.

После этого делаем копию sidebar.php и сохраняем как sidebar-page.php.

Открываем page.php и в нем вместо строчки:

<?php get_sidebar(); ?>

Пишем:

<?php if (file_exists(TEMPLATEPATH.'/sidebar-page.php')) {require(TEMPLATEPATH.'/sidebar-page.php');}; ?>

После этого открываем sidebar-page.php. Теперь он отвечает за вызов меню для всех страниц (page) в нем нужно удалить строки категорий, примерно такие:

<li>
<ul class="is_kat">
<?php wp_list_cats('sort_column=name ... '); ?>
</ul>
</li>

Вопрос по теме: под фразой "Если требуется убрать меню целиком, то проверьте наличие в шаблоне файла page.php. Если его нет, то скопируйте его из index.php." понимается полное копирование файла index.php в новый файл page.php? Мне нужно убрать мета-информацию (количество комментов, категория, а втор и т.д.) со страниц, но при этом оставить её в постах… Файла page.php в используемой теме нет.

Сделайте копию index.php с именем page.php 🙂

После этого в page.php удаляете все, что вам не нужно. 😉

Спасибо, сейчас попробую…

Поиск не дал нужного результата.
Дабы не создавать новую тему решил задать вопрос здесь:
Имеется страница с id=64 (плагин-форум). Нужно с нее и только с нее удалить сайдбар вообще. Чтобы расширить контент. Пытались убрать сайдбар вообще – убрали(со всех страниц – гы), но контент остался сжатым как и был.
Какой код нужно вписать? И куда? В файлы темы или файлы вордпресса (версия 2.1, скачанная с этого сайта).
Огроменное спасибо.

Страницу вы имеете в виду static page? Если так, то сделайте для неё отдельный шаблон (скопируйте page.php с другим именем) и добавьте в начало

<?php
/*
Template Name: Название шаблона
*/
?>

В этом файле и уберите сайдбар и измените размеры по своему усмотрению. Выбрать этот шаблон можно прямо в редакторе (поле "Шаблон страницы").

Спасибо.
Оказывается все гораздо проще…

Как мне кажется мой вопрос в продолжении темы, по крайней мере больше ничего не нашел кроме этого более менее похоже на мою проблему.
А проблема следующая:

Имею скажем 4 родительские категории, в каждой родительской по 10 подкатегорий. Для каждой категории иммется файл category N.php а также sidebarN,который инклудится в category N, в котором указывается какие подкатегории выводиnь в сайдбаре для каждой категории.
Поясню напримере:
Пользователь переходит в категорию с id1 и в сайтбаре видит подкатегории, скажем с id2-id11, когда он перейдет в категорию с id12. то в сайдбаре выведутся подкатегории c id13-id24 и так далее. Соответсвенно вывод подкатегорий описывается ф-цией wp_list_cats.
Но нарисовалась проблемка, что когда посты разделяю тегом more, после перехода по ссылке "читать далее" в сайдбаре отображаются категории пол умолчанию, то есть те которые обозначены в файле idex.php.
Подскажите как сделать так чтобы если мы находились в категории скажем с id12 то и при переходе по ссылке "читат далее" выводились те категории котрые указаны в файле sidebar12–> category-12.php?!?!

А посты и без more будут так же себя вести. Решение кроется в использовании для вывода поста шаблона category-N.php вместо штатного single.php (index.php). Это делает плагин Force Category Template.

Согласен что more тут не причем. Однако вот какя штука у меня получилась, постаил плагин, проблема в целом решилась, то есть при переходе к чтению поста категрии отсаются такие же как и в category-N.php, однако вместо поста я вижу все потсы когда либо размещенные на блоге.
Вывод постов осуществляю так

    <?php while (have_posts()) : the_post(); ?>
            
        <div class="post" id="post-<?php the_ID(); ?>">
            <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
                        <div class="entry">
                 <?php the_content('Читать далее &raquo;'); ?>
            </div></div>

С виду у меня все правильно!

Может в плагине че?!

function txfx_force_category_template() {

    if ( !is_single() || is_404() ) return; // we only care about single posts

    global $posts, $post;

    $post = $posts[0];
    $categories = get_the_category($post->ID);
    
    if ( !count($categories) ) return; // no category with which to work

    foreach ( $categories as $category ) {
        if ( file_exists(TEMPLATEPATH . "/category-" . $category->cat_ID . '.php') ) {
            include(TEMPLATEPATH . "/category-" . $category->cat_ID . '.php');
            exit;
        }
    }
}

add_action('template_redirect', 'txfx_force_category_template');
?>

А перед while (have_posts()) стоит вызов query_posts? Если да, то какие у него параметры?

 <?php $qq = $query_string; ?>
<?php include (TEMPLATEPATH.'/sidebarN.php') ?>
    <?php query_posts($qq); ?>

$qq, думаю, в сайдбаре не портится. Впрочем, это легко проверяется двумя эхами – до и после.
На досуге попробую у себя. WP 2.5?

Нет, старинный 2.2.3!

Плёхо. У меня 2.2 учебных не осталось, а с боевым экспериментировать не хоцца.

Буду сам че нить мудрить! в любом случае спасибо:)!

Не надо мудрить, надо сравнить $query_string без плагина (в single.php или за неимением оного в Теме в index.php), а также с плагином в category-N.php до и после вызова сайдбара.

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