Вопрос: Пользовательский тип записей Архив по дате и таксономии

Позволяет использовать классический пример пользовательского типа записи, называемого "movies", со своей собственной таксономией, называемой "genre".

Регистрируя пользовательский тип записи (со слагом «movie»), постоянные ссылки уже настроены на

<domain>/movie/action/

... для просмотра всех фильмов в жанре экшн. < /p>

Но, архивы по дате, например,

<domain>/2010/09/

... не знаю о пользовательском типе записи.

Ближайший архив на основе даты, я можно приступить к работе:

<domain>/2010/?post_type=movies

... в котором перечислены все пользовательские типы сообщений, опубликованные в текущем году (2010). По какой-то причине месяц, таксономия и термин не могут быть добавлены к URL-адресу, чтобы получить ожидаемый результат.

Что нужно сделать, чтобы включить URL-адреса, подобные этим ...

<domain>/2010/09/movie/action/

... работать так, как ожидалось, чтобы перечислить все боевики, опубликованные в сентябре 2010 года?

Ответы и комментарии:

Спасибо за это, я попробую и приму ваш ответ / предложу изменения, если смогу заставить это работать ...
Создан 22-09-2010 02:29 Werner

Это замечательно! Один быстрый вопрос, как мне добавить пользовательские имена таксономии в качестве подпунктов в меню.
Создан 26-09-2010 11:27 Brad

Брэд, я полагаю, что публиковать новый вопрос для этого - лучший путь вперед, если соматика не редактирует его пост?
Создан 27-09-2010 11:58 Werner

для этого потребовался бы совершенно новый набор кода, и лучше всего это было бы как отдельный вопрос ... на который я был бы рад ответить ;-) Вернер - я ответил на оригинальный вопрос? Буду признателен, если вы выберете мой ответ как «принятый».
Создан 10-10-2010 11:22 somatic

Да, в настоящее время нет встроенной поддержки архивов CPT, но это не означает, что вы не можете расширить WP, чтобы обеспечить его. Я просто сделал это сам на днях ...
Это не создаст архивы на основе дат, которые вы ищете, но даст вам виртуальный архив для пользовательских типов записей. Добавление даты должно быть просто вопросом настройки правил перезаписи (фактически, постоянные ссылки на основе даты могут работать как есть) ...
ПРИМЕР: у вас есть пользовательский тип «фильмов» и отдельный пост фильма «Унесенные ветром». Этот код предоставит вам структуру URL веб-сайта website.com/movies/gone-with-the-wind. Кроме того, зайдя на сайт website.com/movies, вы увидите список только фильмов (точно так же, как архив категорий, хотя он не будет вызывать шаблон archive.php для вывода, но будет форматировать вывод, как стандартный шаблон цикла index.php).
функция register_post_type_archives ($ post_type, $ base_path = '') {
    global $ wp_rewrite;
    if (! $ base_path) {
        $ base_path = $ post_type;
    }
    $ rules = $ wp_rewrite-> generate_rewrite_rules ($ base_path);
    $ rules [$ base_path. '/? $'] = 'index.php? paged = 1';
    foreach ($ rules as $ regex => $ redirect) {
        if (strpos ($ redirect, 'attachment =') == FALSE) {
            $ redirect. = '& post_type ='. $ post_type;
            if (0                 for ($ i = 0; $ i                     $ redirect = str_replace ($ соответствует [0] [$ i], '$ соответствует ['. $ соответствует [1] [$ i]. ']', $ redirect);
                }
            }
        }
        add_rewrite_rule ($ regex, $ redirect, 'top');
    }
}

вызовите эту функцию сразу после того, как вы сгенерировали свой тип записи:
register_post_type ('movies', $ args);
register_post_type_archives ( 'кино');

Затем, если вы хотите иметь возможность использовать пользовательские шаблоны для управления выводом этих квазиархивных списков, вы можете использовать это:
add_action ('template_redirect', 'post_type_templates');
function post_type_templates () {
    $ post_type = get_query_var ('post_type');
    if (! empty ($ post_type)) {
        locate_template (array ("{$ post_type} .php", "index.php"), true);
        умереть;
    }
}

Теперь вы можете создать шаблон «movies.php» в своей теме и настроить вывод цикла по своему вкусу.
ОБНОВЛЕНИЕ: наличие архивных функций для пользовательских типов - это здорово, но я понял, что мне нужен способ доступа к ним. Очевидно, вы можете жестко кодировать кнопки где-нибудь, указывающие на слагов, но я сделал функцию для генерации навигационной панели wp3.0 со всеми моими пользовательскими типами. Прямо сейчас он порождает новую панель навигации и делает ее основной, но вы можете изменить ее на дополнительную или просто добавить элементы в существующую панель навигации. Примечание: навигационные ссылки будут работать только в том случае, если вы используете правила переписывания сверху.
function register_typenav () {
    $ mainnav = wp_get_nav_menu_object ('Types Nav');
    if (! $ mainnav) {
        $ menu_id = wp_create_nav_menu ('Types Nav');
        // элемент vav для каждого типа записи
        $ types = get_post_types (array ('exclude_from_search' => false), 'objects');
        foreach ($ types как $ type) {
            if (! $ type -> _ builtin) {
                wp_update_nav_menu_item ($ menu_id, 0, массив (
                    'menu-item-type' => 'custom',
                    'menu-item-title' => $ type-> label-> name,
                    'menu-item-url' => get_bloginfo ('url'). '/'. $ type-> rewrite ['slug']. '/',
                    'menu-item-status' => 'Опубликовать'
                    )
                );
            }
        }
    if ($ mainnav &&! has_nav_menu ('primary-menu')) {
        $ theme = get_current_theme ();
        $ mods = get_option ("mods_ $ theme");
        $ key = key ($ mods ['nav_menu_locations']);
        $ mods ['nav_menu_locations'] [$ key] = $ mainnav-> term_id;
        update_option ("mods_ $ theme", $ mods);
    }
}
add_action ('init', 'register_typenav');
Создан 22-09-2010 04:50

Пользовательские типы сообщений не предназначены для предоставления архива, как это делает обычный тип сообщений в блоге. Это может быть что-то, что будет изменено в будущем.
Это отсутствующая ссылка: Усовершенствования пользовательских типов записей (CPT), которые заслуживают рассмотрения в 3.1.
Создан 16-09-2010 03:56

Этот плагин предоставляет именно то, что вы хотите. Хорошо работает с Wordpress 3.3.1.

http://wordpress.org/extend/plugins/custom-post-type-archives/
Сайт автора: http://ratvars.com/custom-post-type-archives/
Создан 14-03-2012 07:45 baxang1112

Он маршрутизируется перевозчиком, поэтому, даже если ваш телефон выключен, он будет соответствующим образом перенаправлен в Google Voice. С телефонами, отличными от android, вы должны ввести код активации оператора на клавиатуру и нажать отправить, чтобы внести изменения на уровне несущей. Приложение Google Voice для Android позаботится об этом для вас, просто переключившись в меню настроек.
Создан 03-10-2010 05:00 Matt16.2k1069124