Як додати до_контенту за допомогою 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';замість цього.


Велика сила в той період, дякую! Інше питання: я використовую плагін для відображення соціальних кнопок для Like, +1 тощо, і вони відображаються над новим вмістом за замовчуванням - чи є спосіб, щоб кнопки відображалися нижче? Я припускав, що цей фільтр "з'єднає" вміст і новий_дефолт_контент як один повний розділ.
Джордж С

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

Ах, я перегляну справу пріоритетів - ще раз дякую!
Джордж С

FYI я грав навколо з пріоритетом, і це зробило трюк! Ще раз дякую :)
Джордж С

-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.