Использование Jetpack Portfolio Project в WordPress дочерней теме не вызывает архивный шаблон
У меня есть дочерняя тема, в которой используется новый пользовательский тип публикации Jetpack Portfolio Project, и я хочу изменить archive.php для отображения пользовательских результатов.
Я использую: WordPress v3.9.2; Тема: "Дитя точки", Jetpack устанавливается с включенными настраиваемыми типами контента, и в настройках выбираются проекты портфолио. (Никакие другие плагины, которые реализуют функциональность портфеля, не установлены.)
Файлы шаблонов
Таким же образом отдельные сообщения и их архивы могут отображаться с использованием файлов шаблонов single.php и archive.php, соответственно:
- отдельные сообщения пользовательского типа будут использовать single-{post_type}.php
- и их архивы будут использовать archive-{post_type}.php
- и если у вас нет этой страницы архива с типом поста, вы можете передать BLOG_URL?post_type={post_type}
где {post_type} является аргументом $post_type функции register_post_type().
Насколько я понимаю, если вы создадите файлы с именами single-jetpack-portfolio.php и archive-jetpack-portfolio.php в дочерней теме, WordPress автоматически использует эти файлы вместо single.php и archive.php соответственно.
Однако моя дочерняя тема успешно вызывает single-jetpack-portfolio.php, но полностью игнорирует archive-jetpack-portfolio.php, вместо этого вызывая archive.php в дочернем.
Я застрял для решения.
Из приведенного выше кодекса добавление к URL-адресу "? Post_type=jetpack-portfolio" заставляет дочернюю тему правильно использовать archive-jetpack-portfolio.php, но нужно ли мне вручную изменять каждый отдельный URL-адрес, чтобы явно указать это? Должен ли WordPress автоматически не обнаруживать это, как это происходит для файла single-jetpack-portfolio.php? Как я могу решить это?
Я пытался:
- Сброс постоянных ссылок, если это было связано с этим (изменение параметра в меню "Настройки" и сохранение и снова)
- Добавление файла archive.php к дочернему элементу в дополнение к archive-jetpack-portfolio.php (у меня изначально не было файла archive.php в дочернем элементе, поэтому он использовал родительский файл archive.php)
- Публикация нового портфельного проекта Jetpack и обновление существующей страницы (я где-то читал, что публикация чего-либо может вызвать Wordpress, чтобы увидеть изменения)
Заранее благодарю за любую помощь.
2 ответа
У меня была та же проблема, описанная ОП. Когда я заходил на mydomain.com/portfolio, он использовал пользовательский шаблон архива. Когда я пытался просмотреть тип проекта, он по умолчанию стал обычным archive.php. Мне интересно, просматривал ли OP страницу типа проекта, не осознавая этого.
Моим решением было создать файл шаблона таксономии. После игры с этим я понял, что
- taxonomy.php
- Таксономия-Реактивный ранец-портфель-type.php
- Таксономия-Реактивный ранец-портфель-тип- {имя-проекта типа}.php
все работало правильно, в зависимости от того, насколько конкретно вы хотели получить.
Больше информации в WordPress Codex: http://codex.wordpress.org/Template_Hierarchy
Надеюсь, это кому-нибудь поможет.
Я буду работать над этим в следующие дни.
Вы должны попробовать это в ребенке archive.php
первые строки:
<?php
if( is_post_type_archive('jetpack-portfolio') )
get_template_part('content', 'jetpack-portfolio');
elseif( is_tax('jetpack-portfolio-type') || is_tax('jetpack-portfolio-tag') )
get_template_part('archive', 'jetpack-portfolio');
else continue;
?>