Wordpress - применить remove_filter только на одной странице - PullRequest
6 голосов
/ 09 июня 2011

Я вставляю несколько страниц на одной странице (с плагином showmultiplepages), и одна страница содержит файл php (с exec-php).Я хочу отключить фильтр только для этой включенной страницы.Если я добавлю

remove_filter( 'the_content', 'wpautop' );

на мою включенную страницу, любая страница, которая будет отправлена ​​после этой страницы, тоже не будет иметь фильтров.

Есть ли какой-нибудь тег типа 'the_page', так что только страница будетнет фильтра?

Спасибо за помощь.

Ответы [ 4 ]

11 голосов
/ 08 марта 2013

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

add_filter('the_content', 'specific_no_wpautop', 9);
function specific_no_wpautop($content) {
    if (is_page('YOUR PAGE')) { // or whatever other condition you like
        remove_filter( 'the_content', 'wpautop' );
        return $content;
    } else {
        return $content;
    }
}
5 голосов
/ 09 июня 2011

Я предлагаю создать шаблон страницы для «одна страница включает файл php (с exec-php)». Затем добавьте оператор if вокруг оператора remove_filter (...).

if (!is_page_template('my-page.php'))
  remove_filter('the_content', 'wpautop');

Надеюсь, это работает. ; Р

2 голосов
/ 13 апреля 2016

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


Включите или выключите wpautop по умолчанию и перечислите любые исключения:

/**
 * Allow or remove wpautop based on criteria
 */
function conditional_wpautop($content) {
    // true  = wpautop is  ON  unless any exceptions are met
    // false = wpautop is  OFF unless any exceptions are met
    $wpautop_on_by_default = true;

    // List exceptions here (each exception should either return true or false)
    $exceptions = array(
        is_page_template('page-example-template.php'),
        is_page('example-page'),
    );

    // Checks to see if any exceptions are met // Returns true or false
    $exception_is_met = in_array(true, $exceptions);

    // Returns the content
    if ($wpautop_on_by_default==$exception_is_met) {
        remove_filter('the_content','wpautop');
        return $content;
    } else {
        return $content;
    }
}
add_filter('the_content', 'conditional_wpautop', 9);
0 голосов
/ 05 октября 2013

не работает?

add_filter('the_content', 'specific_no_wpautop', 9);
function specific_no_wpautop($content) {
    global $post;
    if (is_sangle('5136') || ('3820')){ // or whatever other condition you like
        remove_filter( 'the_content', 'wpautop' );
        return $content;
    } else {
        return $content;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...