Я пытаюсь отключить Jetpack Carousel для определенного идентификатора поста, используя следующий код в моем functions.php
function djcoh_disable_carousel( $value ) {
wp_reset_query();
if ( is_page( 614 ) ) {
$value = true; // true to disable Carousel
}
// Return original or changed value
return $value;
}
add_filter( 'jp_carousel_maybe_disable', 'djcoh_disable_carousel' );
Вот ссылка на jp_carousel_maybe_disable на GitHub
Кажется, что я не могу использовать is_page () в functions.php — хотя я думал, что смогу с помощью wp_reset_query (), как упоминалось в кодекс
Что мне не хватает ?!
У вас есть код из учебника, который предназначен для запуска в качестве простого плагина. Причина, по которой ваш код в настоящее время не работает, заключается в том, что вы используете его в functions.php.
В текущем виде ваша функция вызывается, как только она читается как часть файла functions.php. Обычно это происходит за некоторое время до того, как страница сформирована, и поэтому вы не можете получить идентификатор страницы с помощью is_page{}
,
Вместо этого вы должны запросить страницу и получить ее идентификатор следующим образом:
function djcoh_disable_carousel( $value ) {
//get the global
global $post
echo "TEST PAGE ID: ".$post->ID;
//wp_reset_query();
if ( $post->ID == 614 ) {
$value = true; // true to disable Carousel
}
wp_reset_query();
// Return original or changed value
return $value;
}
add_filter( 'jp_carousel_maybe_disable', 'djcoh_disable_carousel' );
если это не работает, попробуйте это:
function djcoh_disable_carousel( $value ) {
//get the global
global $wp_query;
$post_ID = $wp_query->post->ID;
echo "TEST PAGE ID: ". $post_ID;
//wp_reset_query();
if ( $post_ID == 614 ) {
$value = true; // true to disable Carousel
}
wp_reset_query();
// Return original or changed value
return $value;
}
add_filter( 'jp_carousel_maybe_disable', 'djcoh_disable_carousel' );
Если ничего из вышеперечисленного не работает, то ваш скрипт вызывается слишком рано, чтобы захватить идентификатор страницы. Таким образом, самым простым вариантом было бы просто поместить этот скрипт в его собственный файл .php, а затем загрузить его в корневую папку плагинов. Затем активируйте его из меню плагинов.
Последний вариант — создать его как фильтр или скрипт и добавить вызов функции в фактический шаблон страницы.
Других решений пока нет …