Как добавить контент к the_content с помощью add_filter для пользовательского типа записи?

12 сент. 2011 г., 05:48:54
Просмотры: 14.6K
Голосов: 10

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

У меня настроен следующий код:

function new_default_content($content) {
global $post;
    if ($post->post_type == 'custom-post-type') {
    $content = 'Тестовый текст здесь';
    }
    return $content;
    }
add_filter('the_content', 'new_default_content');

Однако при обновлении страницы я вижу только "Тестовый текст здесь", а не контент записи (из the_content).

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

0
Все ответы на вопрос 2
4
10

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

12 сент. 2011 г. 06:26:40
Комментарии

Много энергии в тот период, спасибо! Еще вопрос: я использую плагин для отображения социальных кнопок Like, +1 и т. д., и они появляются над new-default-content — есть ли способ сделать так, чтобы кнопки отображались снизу? Я предполагал, что этот фильтр будет рассматривать the_content и new_default_content как один целый раздел.

George C George C
13 сент. 2011 г. 18:45:34

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

helenhousandi helenhousandi
13 сент. 2011 г. 20:27:43

А, я посмотрю насчет приоритетов — еще раз спасибо!

George C George C
14 сент. 2011 г. 08:46:43

Кстати, я поэкспериментировал с приоритетами, и это сработало! Ещё раз спасибо :)

George C George C
14 сент. 2011 г. 20:56:44
1
-1

Простыми словами:

               if ($post->post_type == 'custom-post-type') {
                   $new_content= 'Текст для теста';
                                }
                       return $content.$new_content;
18 нояб. 2015 г. 09:22:21
Комментарии

Только код не считается качественным ответом. Вам следует объяснить, что делает код и как он отвечает на вопрос. Таким образом, читатели, которые новички в программировании, смогут понять ваш ответ. Можете ли вы объяснить свой код?

cybmeta cybmeta
18 нояб. 2015 г. 14:56:31