Как добавить любое содержимое до или после статьи в WordPress

Иногда нам нужно добавить текст, социальные кнопки без плагина, рекламный блок или форму подписки до или после содержания каждой статьи в WordPress. Желательно добавить так, чтобы при обновлении темы ничего не исчезло. Поэтому, вставляйте код не в файл functions.php, а при помощи любого плагина способного подключать фрагменты кода к вашей теме. Для этих целей отлично подходит плагин Code Snippets.

Добавление содержимого перед the_content на примере виджета-переводчика Яндекс.

Для начала определимся, на каких страницах мы будем выводить наши блоки. Приведу пример добавления виджета Яндекс «Переводчик для сайтов».

На сайте Яндекс я получила скрипт виджета, который подключу в футер темы таким образом:

/* Добавляем в футер виджет Яндекс-переводчик */
add_action('wp_footer', 'nanima_add_ya_translater_footer');
function nanima_add_ya_translater_footer(){
?>
<script src="https://translate.yandex.net/website-widget/v1/widget.js?widgetId=ytWidget&pageLang=ru&widgetTheme=light&autoMode=false" ></script>
<?php
};

Виджет будет выводится только на странице записей. Это мы и укажем в функции добавив условный тег is_single. Вставляю код <div id=«ytWidget»></div> до содержимого поста при помощи переменной $beforecontent. Таким образом можно вставить любое другое содержимое.

/* Выводим виджет Яндекс-переводчик перед контентом */
function nanima_before_content($content) {
    if(is_single()) {
        $beforecontent = '<div id="ytWidget"></div>';
        $fullcontent = $beforecontent . $content;
    } else {
        $fullcontent = $content;
    }
    
    return $fullcontent;
}
add_filter('the_content', 'nanima_before_content');

Проверяю страницы записей. Виджет на месте, как раз перед статьей.

Добавление содержимого до и после the_content.

Если вам необходимо вывести содержимое на всех страницах, уберите условные теги.

Содержимое до и после статьи в одной функции.

Чтобы добавить текст в самый конец поста, замените переменную $beforecontent на $aftercontent. Для вывода обеих переменных воспользуемся следующей функцией:

function nanima_before_after($content) {
    if(is_page() || is_single()) {
        $beforecontent = 'Содержимое в самом начале статьи на страницах и в записях';
        $aftercontent = 'Содержимое в конце статьи на страницах и в записях.';
        $fullcontent = $beforecontent . $content . $aftercontent;
    } else {
        $fullcontent = $content;
    }    
    return $fullcontent;
}
add_filter('the_content', 'nanima_before_after');

Рандомное отображение содержимого до и после статьи.

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

function nanima_before_after($content) {
    if(is_page() || is_single()) {
        $rand1 = rand(0,1);
        $rand2 = rand(0,1);
        
        // Если перед статьей
        if($rand1 == 1) {
            $beforecontent = 'Дорога возникает под шагами идущего.';
        } else {
            $beforecontent = 'Проблема в том, что, не рискуя, мы рискуем в сто раз больше.';
        }
        
        // Если после статьи
        if($rand2 == 1) {
            $aftercontent = 'Боишься — не делай, делаешь — не бойся, а сделал — не сожалей.';
        } else {
            $aftercontent = 'Работа возвышает, ее завершение - возвеличивает.';
        }
        
        // Output
        $fullcontent = $beforecontent . $content . $aftercontent;
        
    } else {
        $fullcontent = $content;
    }
    
    return $fullcontent;
}
add_filter('the_content', 'nanima_before_after');

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

наверх

Пожалуйста, докажите, что вы человек, выбрав автомобиль.