Использование 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;
?>
Другие вопросы по тегам