Intereting Posts
Переадресация сайта на http://example.com/wp-signup.php?new=example.com Как синхронизировать поля профиля пользователя в многопользовательском режиме? Получить полный контроль над пользовательским типом почтового сообщения Внезапно любые исходящие HTTP-запросы с сайта WordPress больше не работают. Как диагностировать? Как получить внешние данные входа (сеанс) в WordPress? Проблема с подменю, когда навигационная панель находится внизу Отображение содержимого одного пользовательского типа сообщения на одном столбце другого пользовательского типа сообщения Разметка страницы для страницы пользовательской таксономии последние сообщения shortcode с изображением wp_nav_menu_items filter :: пользовательские меню выходят за пределы ul class Сообщение Meta не сохраняется, когда есть пустое сообщение Меню wp nav без ярлыка Пользовательский тип сообщения Metabox – не сохраняет Возможно ли использовать query_posts, используя post__in, а затем прокручивать их в упорядоченных запросах? Отключить или изменить доступ-Контроль-Разрешить-Происхождение из заголовков ответов

Создание шаблона для пользовательского типа сообщений аналогично тому, как на странице

Я создаю свою первую настраиваемую тему, используя пользовательские типы сообщений, и я столкнулся с одной проблемой. Я хотел бы сделать некоторые шаблоны, как вы можете сделать для страниц (например, page-fullwidth.php page-noslider.php и т. Д.). Я знаю, если вы хотите создать шаблон для пользовательского типа сообщений, который вы просто делаете, например, для однократной покупки. php, но я бы хотел сделать single-cookingrecipes-fullwidth.php и еще несколько.

Я создал 2 таких файла и добавил

<?php /* Template Name: Art */ ?> 

и до сих пор не повезло 🙁

Похоже, вы говорите об этом шаблоне отображения страницы:

page-{slug}.php Если slug-страница является recent-news , WordPress будет использовать page-recent-news.php

И вы хотите использовать single-{cpt-slug}-{slug}.php .

Если это так, я считаю, что вы можете приблизиться к обработке шаблона страницы следующим образом:

 function cpt_slug_template_wpse_117630($template) { global $post; $templ = locate_template('single-'.$post->post_type.'-'.$post->post_name.'.php'); if ( 'book' == $post->post_type && 'poem' == $post->post_name && !empty($templ)) { $template = get_stylesheet_directory().'/single-'.$post->post_type.'-'.$post->post_name.'.php'; } return $template; } add_filter('single_template','cpt_slug_template_wpse_117630'); 

Предположим, вы сделали новый вызов страницы art.php

  <?php /* Template Name: Art */ ?> 

Следующий шаг, который вы должны сделать, это перейти на панель управления администратора. Затем выполните простые шаги.

  1. Перейти к странице
  2. С правой стороны находится шаблон «Атрибуты страницы». По умолчанию он имеет «Шаблон по умолчанию». Нажмите на нее.
  3. Выберите Art.

Вот и все.

Пользовательский тип сообщения может иметь параметры шаблона, такие как Страницы, но его небольшой комплекс, но я попытаюсь объяснить его:

1) вам необходимо зарегистрировать новый мета-ящик с выпадающим (обычным мета-полем) всех шаблонов:

 function register_post_cookingrecipes() { add_meta_box('cookingrecipes-details', __('Template Details'), 'add_cookingrecipes_meta_box', 'cookingrecipes', 'side', 'high'); if (('delete_posts')) add_action('delete_post', 'delete_meta_cookingrecipes', 10); } add_action('admin_init', 'register_post_cookingrecipes', 1); function add_cookingrecipes_meta_box($post) { $page_template = get_post_meta($post->ID, '_wp_page_template', TRUE); ?> <label for="page_template"><?php _e('Template') ?>: </label><br/> <select style="width:100%" name="page_template" id="page_template"> <option value='single-cookingrecipes.php'><?php _e('Default'); ?></option> <option <?php if ($page_template === 'single-cookingrecipes-fullwidth.php') echo 'selected="selected"'; ?> value='single-cookingrecipes-fullwidth.php'>full width</option> </select> <?php } 

2) Сохраните / Удалите содержимое нового мета поля при сохранении сообщения.

 function save_cookingrecipes_meta($post_id) { $post = $_POST['post_type']; if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return; if (!current_user_can('edit_page', $post_id)) return; switch ($post) { case 'cookingrecipes': $page_template = $_POST['page_template']; if (!empty($page_template)) update_post_meta($post_id, '_wp_page_template', $page_template); break; default: return; } } add_action('save_post', 'save_cookingrecipes_meta'); function delete_meta_cookingrecipes($post_id) { $post = $_POST['post_type']; switch ($post) { case 'cookingrecipes': delete_post_meta($post_id, '_wp_page_template'); break; default: return; } } 

3) Ключевая часть для загрузки пользовательского шаблона, который вы создали, находится здесь

 function cookingrecipes_template_redirect() { global $post; $queried_post_type = get_query_var('post_type'); if (is_single() && 'cookingrecipes' == $queried_post_type) { $page_template = get_post_meta($post->ID, '_wp_page_template', TRUE); if ($page_template !== '' && isset($page_template)) { include(get_stylesheet_directory() . '/' . $page_template); exit; } } } add_action("template_redirect", 'cookingrecipes_template_redirect'); 

любые вопросы, дайте мне знать