Как добавить в the_content, используя add_filter с пользовательским типом записи?


9

У меня есть пользовательский тип сообщения, работающий нормально, но часть текста на странице одинакова для каждого сообщения, поэтому я хочу добавить его с помощью функции.

У меня есть это настроено:

function new_default_content($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Test text here';
    }
    return $content;
    }
add_filter('the_content', 'new_default_content');

Однако, когда я обновляю страницу, я вижу только «Тест текста здесь», а не содержимое сообщения (из the_content).

Если я закомментирую эту функцию, содержание сообщения появится снова. Что я делаю неправильно?

Ответы:


8

Вы полностью перезаписываете контент, а не добавляете его. Вам нужно сделать что-то вроде $content .= 'Test text here';этого.


Большая сила в этот период, спасибо! Другой вопрос: я использую плагин для отображения социальных кнопок «Мне нравится», «+1» и т. Д., И они отображаются над новым содержимым по умолчанию - есть ли способ заставить кнопки отображаться ниже? Я предполагал, что этот фильтр «разделит» the_content & new_default_content как один полный раздел.
Джордж С

1
Ну, вы добавляете новый контент, поэтому он появится позже. Вы можете попробовать подключить фильтр с более высоким приоритетом, чтобы заставить его обрабатывать до того, как это сделает плагин, потому что плагин также использует тот же фильтр.
helenhousandi

Ах, я посмотрю на вещи приоритетов - еще раз спасибо!
Джордж C

К вашему сведению, я играл с приоритетом, и это помогло! Еще раз спасибо :)
Джордж C

-1

Простым способом

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Test text here';
                                }
                       return $content.$new_content;

Только код не считается хорошим качеством ответа. Вы должны объяснить, что делает код и как он отвечает на вопрос; Таким образом, читатели, которые являются новичками в кодировании, поймут ваш ответ. Можете ли вы объяснить свой код?
Cybmeta
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.