Отключить Jetpack Carousel на определенных страницах в WordPress

Я пытаюсь отключить 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 (), как упоминалось в кодекс

Что мне не хватает ?!

1

Решение

У вас есть код из учебника, который предназначен для запуска в качестве простого плагина. Причина, по которой ваш код в настоящее время не работает, заключается в том, что вы используете его в 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, а затем загрузить его в корневую папку плагинов. Затем активируйте его из меню плагинов.

Последний вариант — создать его как фильтр или скрипт и добавить вызов функции в фактический шаблон страницы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]