Как изменить содержимое страницы перед применением фильтров в Wordpress? - PullRequest
0 голосов
/ 24 ноября 2011

Мне нужно изменить источник контента страницы и получить его не из БД, а из внешнего файла.Я решил добавить настраиваемое поле «staticfile» на страницу, я хочу изменить источник.Затем я написал мини-плагин и добавил туда фильтр "the_content":

add_filter('the_content', 'static_content');
function static_content($content) {
    $custom_fields = get_post_custom();
    $my_custom_field = $custom_fields['staticfile'];
    $upload_dir = wp_upload_dir();
    foreach ($my_custom_field as $value) {
        if ($value) {
            $file = file_get_contents($upload_dir['basedir'] . '/staticpages/' . $value);
            return $file;
        }
    }
    return $content;
}

Он отлично работает, за исключением одной вещи.Html-код, который я получаю на выходе, не фильтруется.Например, шорткоды, добавленные с другими плагинами, не работают.Я пытался написать:

return apply_filters('the_content', $file);

Но он нарушает весь вывод (возможно, он зацикливает код).Есть ли способ изменить источник страницы с применением фильтров?

1 Ответ

0 голосов
/ 13 марта 2014

Я думаю, вы хотите применить параметр приоритета ... add_filter ('the_content', 'static_content', 20);по умолчанию для плагинов 10, поэтому 20 означает, что они работают с более низким приоритетом.Попробуйте посмотреть, на что его установить. Чем выше значение, тем все плагины могут изменить его, прежде чем вы поработаете с ним с помощью фильтра.Думайте, что это то, что вы хотите.

...