Как я могу подключить функцию в WordPress, из файла function.php, таким образом, чтобы она работала только для одной страницы?
if( is_page( '285' ) ):
function searchfilter($query) {
if( $query->is_search && !is_admin() ) {
$query->set('post_type', array('projects'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
endif;
У меня есть такой код, но он не работает. Kто подскажет, в чём проблема?
Условные теги не работают прямо в functions.php. На момент подключения этого файла в ядре ещё не установлен главный запрос WordPress, поэтому is_page() с любыми аргументами и без них возвращает false.
Условный тег должен быть использован внутри хука:
function searchfilter( $query ) {
if ( $query->is_search && ! is_admin() ) {
if ( is_page( '285' ) ) {
$query->set( 'post_type', array( 'projects' ) );
}
}
return $query;
}
add_filter( 'pre_get_posts', 'searchfilter' );
Но и такой код неправильный. is_search() и is_page() никогда не вернут true одновременно. Из вопроса непонятно, что именно вы хотите сделать.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости