Как добавить контент до или после the_content и в пользовательских типах сообщений

Опубликовано: 2020-01-09

Как добавить контент до или после the_content и в пользовательских типах сообщений На страницах и в сообщениях вашего сайта WordPress вы можете добавить некоторый контент после содержимого страницы или содержимого сообщения. Такой контент может потребоваться для всех страниц или сообщений, или для того и другого, или для пользовательских типов сообщений. В таком случае вам нужно использовать фильтр, который добавляет контент после или до функции the_content в теме WordPress или шаблоне страницы плагина. К счастью, сегодня я проиллюстрирую самый простой способ сделать это, не ломая свой сайт.

Пример контента для добавления после публикации контента

Хорошим примером является ситуация, когда вы хотите поделиться со своими посетителями кратким примечанием о правилах раскрытия или комментариев аффилированных лиц.

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

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

Добавление контента после страницы или публикации контента в WordPress

При создании тем WordPress или настройке тем WordPress вам может потребоваться добавить содержимое в конец the_content . Это особенно распространено, когда вы используете настраиваемые мета-поля или настраиваемые типы сообщений с конкретными деталями, которые следует добавлять в конец каждого сообщения.

Возможно, вы можете использовать get_post_meta , get_user_meta или get_option для получения данных, хранящихся для конкретного сообщения или пользователя, прежде чем они будут добавлены после функции the_content.

Есть несколько ситуаций, в которых вам может потребоваться добавить контент после the_content . Я хочу облегчить вам задачу, шаг за шагом демонстрируя, как добавлять контент после the_content.

Отфильтруйте хук после the_content, чтобы добавить новый контент

Очевидно, что для добавления любого контента на страницу WordPress необходимо понимать, как работают фильтры. В идеале WordPress имеет два типа хуков: хуки действий и фильтры, как ясно объяснено в этом посте — хуки WordPress do_action и фильтры применения, или вы должны, по крайней мере, иметь представление о том, как редактировать файл functions.php в вашей теме.

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

Добавьте контент после the_content в WordPress

Сначала нам нужно создать фильтр следующим образом:

 add_filter('the_content', 'add_content_after');

Функция обратного вызова теперь должна содержать код, который мы хотим добавить после the_content, мы также должны передать параметр $content в функцию обратного вызова, чтобы мы могли фильтровать и возвращать:

 функция add_content_after($content) {

      $after_content = «Пример нашей политики комментариев»;

      $полный контент = $контент. $после_контента;

       вернуть $fullcontent;

}

Итак, в этом случае мы добавляем $after_content, и он отображается, как показано на изображении ниже:

фильтр the_content

Вы можете заменить значение $after_content в коде своим сообщением и добавить полный фрагмент в functions.php, и содержимое будет добавлено после содержимого. Комбинированный фрагмент кода выглядит следующим образом:

 add_filter('the_content', 'add_content_after');

функция add_content_after($content) {

     $after_content = «Пример нашей политики комментариев после публикации»;
 
     $полный контент = $контент. $после_контента;

     вернуть $fullcontent;

}

Добавьте контент перед the_content на страницу или запись WordPress

В некоторых случаях вы можете захотеть добавить содержимое перед the_content . Например, когда я недавно создавал веб-сайт для домашних животных, мне нужно было перечислить сведения о породах собак, прежде чем содержимое можно будет отобразить, как показано на рисунке ниже:

Хотя в этом проекте я использовал другой подход, если вам нужно отобразить контент до the_content , вы все равно должны использовать фильтр, описанный выше, и единственная разница заключается в том, что вы присоединяетесь к переменной $fullcontent .

В этом случае вы должны начать с контента, который хотите отобразить первым, как показано ниже:

 add_filter('the_content', 'add_content_before');

функция add_content_before($content) {

      $before_content = «Пример нашей политики комментариев перед публикацией контента»;

      $fullcontent = $before_content . $контент;

      вернуть $fullcontent;

}

Вывод должен отображаться, как показано на изображении ниже:

Как добавить контент до и после фильтра the_content

Добавьте контент до и после the_content на странице или в записи WordPress

У вас также может быть комбинированный сценарий, в котором вы хотите отображать контент до и после the_content, и это может быть достигнуто с помощью следующего кода:

 add_filter('the_content', ' add_content_before_and_after);

функция add_content_before_and_after($content) {

      $before_content = «Пример нашей политики комментариев до и после публикации»;

      $after_content = «Пример нашей политики комментариев до и после публикации»;

      $fullcontent = $before_content . $контент . $после_контента;

     вернуть $fullcontent;

}

Вывод должен отображаться, как показано на изображении ниже:

добавить контент после the_content и перед фильтром контента the_content

Добавляйте контент до и после the_content и в пользовательских типах сообщений

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

В этом случае, если ваш пользовательский тип записи называется «книги» , код должен быть следующим:

 //4 шага по добавлению нового контента в шаблон страницы определенного пользовательского типа записи

add_filter('the_content', 'add_new_content_after_books_custom_post_type');

функция add_new_content_after_books_custom_post_type($content) {


      //1) Проверяем, находимся ли мы в одном посте и тип поста равен книгам, т.е. слаг пользовательского типа поста

      если (is_singular("книги")){

       //2) Добавляем новый контент в переменную

        $new_books_content = "Это новое содержание книги, которое будет добавлено после пользовательского типа публикации "Книги""

        $aftercontent = $new_books_content;

        $полный контент = $контент. $ после содержания;

       //3) Возвращаем первый раз для пользовательского типа записи, если условие истинно

      вернуть $fullcontent;

   }еще{

       //4) Если это любая другая страница или пост, а не книга, cpt возвращает значение по умолчанию the_content без дополнительного контента

       вернуть $контент;
 
     }
 }

Подведение итогов

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

Как добавить контент после the_content

Как профессиональному разработчику WordPress может быть полезно узнать больше о хуках действий WordPress и, в частности, об хуках фильтров. Я надеюсь, что вы найдете это руководство полезным и поделитесь им со своими коллегами-разработчиками и друзьями.