Intereting Posts
Как интегрировать другой редактор (JavaScript) в WordPress? Не удалось получить доступ к администраторам WP Admin или Login после миграции Получение страниц с несколькими тегами с использованием REST API Использование user_status в условном режиме с get_users для возврата существующих пользователей WP-CLI – выбор версии PHP Отключить плагин Calendar Calendar от загрузки его скриптов вывод post_class в неправильной области? Найти URL-адрес с базовой папкой и удалить расширение Функция расширяется, если запрос в functions.php Плагин или мода для wordpress, чтобы сделать публикацию контента SUPER easy Динамическая переменная для пользовательской таксономии в цикле? Должен ли я изменять эти типы метаданных до создания сложной страницы архива? Страницы Колонка Сортировка WordPress версии 3.0.3 получить эскиз сообщения возвращает полный размер BuddyPress – перенаправление при входе в систему и выходе из системы

Отображать содержимое из пользовательского сообщения без изменения единого шаблона

Довольно трудно объяснить это, но я сделаю все возможное.

Предположим, у нас есть тема T и плагин P.

T имеет кучу пользовательских таксономий, а также P , плагин.

То, что я пытаюсь достичь, – это отображать содержимое из пользовательских таксономий в P в шаблоне T / одиночных файлах без изменения каких-либо файлов в T. В принципе, я хочу «захватить» отдельные представления из темы, написав код в P. Это достижимо? И если да, то как?

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

Заранее спасибо!

Да, это возможно. Вам нужно будет использовать фильтр template_include .

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

 add_filter( 'template_include', 'wpse_272261_template_include', 100 ); function wpse_272261_template_include( $template ) { if ( is_singular( [ 'my_custom_post_type' ] ) ) return PATH_TO . 'template.php'; return $template; } 

Вы можете использовать фильтр the_content чтобы добавить свой собственный код к выходу функции the_content() .

Это будет работать следующим образом:

 function my_add_to_content( $current_content ) { ob_start(); /* Add code here to output what you need to append to the content. Since this is between ob_start() and ob_get_clean() you can treat it like a template and echo the content/markup you need. */ $additional_content = ob_get_clean(); $new_content = $current_content . $additional_content; return $new_content; } add_filter( 'the_content', 'my_add_to_content', 99 ); 

Трудно быть более конкретным, не зная точно, что вам нужно, но где я помещаю этот комментарий, где вам нужно будет делать такие вещи, как проверить, является ли это типом / шаблоном post, который вы хотите «захватить» (используйте get_post_type () или is_page_template () для такого рода вещей) и проверьте, существуют ли значения для того, что вы хотите вывести.