Сегодня рассмотрим способы, как убрать нежелательные рубрики из виджета РУБРИКИ , а также убрать страницы из главного меню. Как обычно, будем пробовать без использования плагинов, а просто немного править код внося дополнения и изменения

Убираем рубрики с главной страницы

В корне вашего блога в папке wp-includes находим файл category-template.php, открываем его программой notepad++ на редактирование , и ищем похожие строки.

function wp_list_categories( $args = '' ) {
	$defaults = array(
		'show_option_all' => '', 'show_option_none' => __('No categories'),
		'orderby' => 'name', 'order' => 'ASC',
		'show_last_update' => 0, 'style' => 'list',
		'show_count' => 0, 'hide_empty' => 1,
		'use_desc_for_title' => 1, 'child_of' => 0,
		'feed' => '', 'feed_type' => '',
		'feed_image' => '', 'exclude' => '',
		'exclude_tree' => '', 'current_category' => 0,
		'hierarchical' => true, 'title_li' => __( 'Categories' ),
		'echo' => 1, 'depth' => 0,
		'taxonomy' => 'category'
	);

Находим строку

 'exclude' => '',

В этой строке мы можем запретить отображение рубрик на главной странице, а точнее мы прописываем id каждой рубрики через запятые, которые не нужны на главной (’1,2,3,4,5?). Чтобы узнать id рубрики, заходим в админку в раздел рубрики. Находим категорию, которую нужно исключить с главной страницы. Нажмите редактировать эту рубрику, и вы перейдете на страницу редактирование категории. В адресной строке в url страницы, вы найдете значение переменной ID.
Это и есть id рубрики.
Второй способ исключить категории в коде вывода рубрик.Ищите в файлах вашей темы похожие строки

<?php wp_list_categories('orderby=name&show_count=0&title_li=<h2>Рубрики</h2>'); ?>

В значениях wp_list_categories () нужно дописать слово exclude, значениями которого будет id рубрик. Как определять ID рубрики, смотрите выше. В нашем случае код выглядит так.

<?php wp_list_categories('exclude=11,14,28&orderby=name&show_count=0&title_li=<h2>Рубрики</h2>'); ?> 

Т.е. мы убираем рубрики, ID которых 11,14,28.

Убираем статьи рубрики с главной

Этот прием нужен для того, чтобы посты определенной рубрики не были видны на главной странице сайта.
В functions.php вашей темы пропишите этот код

 function exclude_category($query) {
    if ($query->is_home ) {
        $query->set('category__not_in', array(45,23));
    }
    return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Посмотрите на array(45,23).Сюда пишем id категорий, статьи которых вы не хотите видеть на главной странице сайта.
Убираем category из URL страницы
Первый способ.
Взято с буржуйского сайта и все блоггеры копируют эти строки. Редактируем файл .htaccess в корне вашего блога. Если его нет, то необходимо будет создать, когда блог перенесете на хостинг.Открываем этот файл и пишем

RewriteRule ^category/(.+)$ http://www.xxx.ru/$1 [R=301,L]
xxx.ru - это ваш домен.
Только почему то никто не пишет, что этот способ не работает, или если и работает то у единиц. У меня эта конструкция не сработала. При входе в архив рубрики по прежнему пишет wphello.ru/category/wordpress/название статьи. про так убрать category из URL я напишу статью. Сразу скажу, что без использования плагина не обойтись.

Второй способ подойдет для того, чтобы убрать название категории в URL страницы. В админке, при первоначальной настройке wordpress при настройке постоянных ссылок вы выбрали /%category%/%postname%.html. В нашем случае выбираете произвольная структура и прописываете /%postname%.html. Категорию не ставите.
Теперь ваша страница будет иметь такой URL - wphello.ru/название статьи.

Убираем страницы из главного меню вашего блога

Иногда возникает необходимость, чтобы в главном меню не были видны некоторые страницы.Чтобы исключить их, в файле function.php вашей темы ищем

<?php wp_list_pages('title_li=&depth=0&orderby=name'); ?> 

В скобки добавляем exclude аналогично, как мы делали с категориями. Вписываете ID страниц через запятую
Код стал таким

<?php wp_list_pages('title_li=&depth=0&orderby=name&exclude=11,14,28'); ?> 

Вот что и хотел рассказать вам в этой статье.