Исключение нескольких постов из обработки плагином в WordPress
Доброго времени суток.
Существует такой плагин "Auto post scheduler", его функция заключается в обновлении через заданное время даты поста (всё это тонко настраивается, к примеру, 1 пост за стуки). Но проблема в том, что у него в настройках полностью отсутствует возможность задать исключения. Я открыл основной файл плагина ссылка на него в оф. репозитории , увидел там такой код:
// set up the basic post query
$post_types = explode(',', $aps_post_types);
$args = array(
'posts_per_page' => $aps_batch,
'cat' => $aps_cats,
'author' => $aps_authors,
'post_type' => $post_types,
'ignore_sticky_posts' => true
);
и отредактировал его вот так
// set up the basic post query
$post_types = explode(',', $aps_post_types);
$args = array(
'posts_per_page' => $aps_batch,
'post__not_in' => array(827, 809),
'cat' => $aps_cats,
'author' => $aps_authors,
'post_type' => $post_types,
'ignore_sticky_posts' => true
);
Я ничего не сломал? Действовал методом логики. У плагина есть режим DEBUG и там постоянно при очередном срабатывании строчка в логе выскакивает, указывая эти параметры. Как я понял, это базовые правила, к примеру, исключать "липкие посты". Значит туда можно и вписать исключения для конкретных постов.
Я прав? Я не нарушил логику скрипта? Нет ли каких то подводных камней в применённом мной решении?
Заранее спасибо за ответ, уважаемые специалисты :-)
Ответы (1 шт):
Вы сделали правильно, но при обновлении плагина ваша правка слетит. Специально для таких вещей в WordPress предусмотрены фильтры, и фильтр существует в плагине (строка 753 файла).
Чтобы использовать его, добавьте следующий код в functions.php вашей темы:
/**
* Filters aps_eligible_query
*
* @param array $args
*
* @return mixed
*/
function aps_eligible_query_filter( $args ) {
$args[ 'post__not_in'] = [ 827, 809];
return $args;
}
add_filter( 'aps_eligible_query', 'aps_eligible_query_filter' );