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

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

Иногда нам нужно добавить текст, социальные кнопки без плагина, рекламный блок или форму подписки, до или после содержания каждого поста в WordPress. Желательно добавить так, чтобы при обновлении темы ничего не исчезло. Поэтому, вставляйте код не в файл function.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" type="text/javascript"></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/Если перед статьей
        if($rand1 == 1) {
            $beforecontent = 'Дорога возникает под шагами идущего.';
        } else {
            $beforecontent = 'Проблема в том, что, не рискуя, мы рискуем в сто раз больше.';
        }
        
        // If/Если после статьи
        if($rand2 == 1) {
            $aftercontent = 'Боишься — не делай, делаешь — не бойся, а сделал — не сожалей.';
        } else {
            $aftercontent = 'Работа возвышает, ее завершение - возвеличивает.';
        }
        
        // Output
        $fullcontent = $beforecontent . $content . $aftercontent;
        
    } else {
        $fullcontent = $content;
    }
    
    return $fullcontent;
}
add_filter('the_content', 'nanima_before_after');

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

СтраUz
Читайте также
Привет! Я Натали Мамбетова.

Занимаюсь разработкой сайтов, блогов, интернет-магазинов, лендингов на WordPress. Оказываю платные помощь и консультации. Являюсь сертифицированным партнером TemplateMonster по CMS системе WordPress, имею сертификат этой компании подтверждающий мои навыки в работе с данной системой.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

© СтраUz 2018. Все права защищены. Копирование разрешено только с указанием гиперссылки на источник.
Сделано с ❤
Заказать сайт