На веб-сайте WordPress у меня есть эта структура страницы:
/posts
/another-page/posts
По сути, это две разные страницы со списком разных сообщений, хотя название (сообщения) одинаковое. Две страницы должны использовать разные шаблоны. Для первой страницы «сообщений» я просто создаю файл с именем page-posts.php, и он выбирается автоматически. Как сделать то же самое для другой страницы «сообщений»?
Является ли единственным решением создать шаблон и вручную выбрать его из раскрывающегося списка на странице администратора? Нет ли способа изменить слаг, не влияя на URL-адрес?
2 ответа
Вы можете попробовать подключиться к действию шаблона страницы, проверить свою пользовательскую структуру URL и, если она существует, вывести свой собственный шаблон.
add_filter( 'page_template', 'custom_page_template' );
function custom_page_template( $page_template ) {
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if ( false !== strpos( $url, '/another-page/posts' ) ) {
$page_template = dirname( __FILE__ ) . '/path_to_my_template.php';
}
return $page_template;
}
Вы можете создать два файла шаблона с именем page-{id}.php для каждой страницы. Это будет обрабатывать обе страницы для вас.
Раздел страницы иерархии шаблонов
Идентификаторы для каждой страницы будут уникальными. Поэтому, когда вы выбираете «Редактировать» в области WP-Admin, посмотрите на URL-адрес, и вы сможете найти идентификатор.
/wp-admin/post.php?post=6163&action=edit
Для этой страницы мой идентификатор страницы будет 6163. Таким образом, имя шаблона будет page-6163.php.
Ура
Похожие вопросы
Новые вопросы
wordpress
Рассмотрите возможность использования https://wordpress.stackexchange.com. Этот тег предназначен для вопросов, связанных с программированием, о системе управления контентом WordPress. Вопросы не по теме включают вопросы о разработке тем, администрировании WordPress, передовых методах управления, настройке сервера и т. д. Их лучше всего задавать на https://wordpress.stackexchange.com.