Как добавить контент до или после the_content и в пользовательских типах сообщений
Опубликовано: 2020-01-09На страницах и в сообщениях вашего сайта 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, и он отображается, как показано на изображении ниже:
Вы можете заменить значение $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 на странице или в записи 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.
В этом случае, если ваш пользовательский тип записи называется «книги» , код должен быть следующим:
//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 вашей темы, и он должен работать.
Как профессиональному разработчику WordPress может быть полезно узнать больше о хуках действий WordPress и, в частности, об хуках фильтров. Я надеюсь, что вы найдете это руководство полезным и поделитесь им со своими коллегами-разработчиками и друзьями.