! Михалика - запросто с WordPress:
доступная ручная работа по правилам оптимального интернет(а)
Здравствуйте !
— отредактировано:  2017-07-18
издатель:   в теме: Контент, шапка site: кодингS  реплики: будьте первым в диалоге
 
Запросто с WordPress - студия занимательная МИХАЛИКА

Как исключить вывод (выборочно) поста с главной страницы сайта — регулировка в админке

Ниже будет предложена пара способов решения задачи, когда администратору сайта требуется исключить какой-то пост (запись) в выводе или формировании главной страницы.

Варианты спокойно реализуются посредством отдельного плагина (как это делается, ссылку дам ниже) или обычной пропиской в файл функций functions.php.

Регулировки удаления/показа поста выполняются из админки — текстового редактора (скрин ниже)

Ну, ладно — вперёд…


В общем всё просто, как видите по скрину ниже, для того чтобы исключить определённую запись (пост) с главной страницы, всего-то нужно поставить птичку в чекбокс.

 

 

 

как удалить пост только с главной страницы

 

 

 

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

 

Прописывают обычно перед значком ?> однако, я всегда советую группировать код по логике функций, понятности для…

 

 

открыть код

/** исключаем вывод поста с главной страницы сайта **/
/** функционал кода срабатывает на странице содержащей все записи блога... **/
if( ! get_option('page_on_front') || get_option('page_for_posts') ){
// чекбокс для исключения
add_action('post_submitbox_misc_actions', 'epfp_fields_box_func');
// включаем обновление полей при сохранении
add_action('save_post', 'epfp_fields_update', 0);
// Исключает вывод постов из списка "помеченных"
add_action('pre_get_posts', 'epfp_exclude_posts');
// Выводит виджет с настройками при публикации/редактировании поста
function epfp_fields_box_func( $post ){
$exclude = get_post_meta( $post->ID, 'epfp_exclude_post', 1);

echo '<div class="misc-pub-section">
<input type="hidden" name="epfp[epfp_exclude_post]" value="" />
<label><input type="checkbox" name="epfp[epfp_exclude_post]" value="1" '. checked( 1, $exclude, 0 ) .' /> убрать запись с главной?</label>
</div>';
}
// Сохранение данных виджет
function epfp_fields_update( $post_id ){
if( !isset($_POST['epfp']) || ! is_admin() || ! wp_verify_nonce( $_POST['_wpnonce'], 'update-post_'. $post_id ) )
return false; // базовая проверка не пройдена

if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return false; // автосохранение

if ( ! current_user_can('edit_post', $post_id) )
return false; // юзер не имеет право редактировать запись
// сохраняем/удаляем данные
$epfp = array_map('trim', $_POST['epfp']);

foreach( $epfp as $key => $value ){
if( empty($value) ){
delete_post_meta( $post_id, $key ); // удаляем поле если значение пустое
continue;
}

update_post_meta( $post_id, $key, $value ); // add_post_meta() работает автоматически
}

return $post_id;
}
// Исключает вывод постов из списка "помеченных"
function epfp_exclude_posts( $query ) {
if ( $query->is_main_query() && ( $query->is_front_page() || $query->is_home ) ) {
$query->set(
'meta_query', array([ 'key'=>'epfp_exclude_post', 'compare'=>'NOT EXISTS' ])
);
}
}
}
/** ФИН исключаем вывод поста с главной страницы сайта **/

 

 

В комментариях даны необходимые пояснения… достаточно подробно.

 

 

Но, коли что не ясно из кода или общего принципа запрещения вывода определённой записи на домашней странице, обращайтесь… есть же комментарии…

 

 

 

 

Как исключить вывод поста на главной страничке сайта — посредством плагина

 

 

 

 

Если будете использовать вариант плагина, желательно бы поставить имя автора (организации) пример кода ниже…

Насколько я знаю — автор кода Campusboy

 

…или как-то указать авторство: это правильно в плане порядочности, и вообще… как сделать плагин правильно, узнаете из статьи, ссылка на которую ниже…

 

 

/*
Plugin Name: Exclude Posts Front Page (epfp)
Description: Плагин позволяет исключить вывод помеченных постов с главной страницы сайта. Пометка ставиться при публикации/редактировании поста.
Author: Campusboy
Author URI: http://wp-plus.ru/
Version: 2.0
*/

 

 

сайт автора (совместно с wp_kama) кода запрета отображения записи на главной странице: //wp-plus.ru/

 

 

 

Как эпилог:

 

…и чтобы не громоздить эту статью множеством пояснений того, как оформляется плагин — о всех теоретических и практических плюсах этого предприятия, я написал отдельную статейку.

Милости прошу, пройти по ссылке Создаём плагин — добавочный файл функций — my-functions и ознакомиться

 

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

Словом, прочтите и увидите…

 

 

 


На этом занавес представления опускается…
…на рампы пыль печальная ложится…

 


подписка feedburner МИГ подписки - ВРЕМЯ знаний!!

 

 

 


Благодарности)) и вопросы в комментариях - помогу… в чём дюжу
А также Вы можете просто:
Нажатия на кнопочки определяют Ваше высокое гражданское сознание
ещё статьи по теме:

меточная навигация:


Комментарии © 0 к статье: Как исключить вывод (выборочно) поста с главной страницы сайта — регулировка в админке

Поделитесь соображениями: Ваши мысли очень важны! $ правила комментирования ©

Внимание! Обязательные поля помечены *

 для диалога необходимо принять правила кофиденциальности *
Яндекс.Метрика