Использование дат в пользовательских post_type Постоянные ссылки в Wordpress 3.0 - PullRequest
6 голосов
/ 29 июня 2010

Я добавляю пользовательский post_type в Wordpress и хотел бы, чтобы структура постоянной ссылки выглядела так:

/%post_type%/%year%/%monthnum%/%postname%/

Я не могу понять, как добавить теги даты. Используя этот код, я получаю /my_type/example-post-slug/:

register_post_type( 'customtype', array(
    ...other options...
    'rewrite' => array('slug' => 'my_type'),
));

Как мне включить даты?

Ответы [ 3 ]

2 голосов
/ 21 мая 2016

Вы можете добиться этого с помощью плагина Пользовательский тип сообщения Постоянные ссылки .Просто установите плагин и измените формат постоянной ссылки в настройках.

0 голосов
/ 31 августа 2017

Я нашел частичное решение, которое позволяет распознавать и сохранять постоянную ссылку при загрузке страницы в адресной строке, но не обновлять на экране редактирования или других ссылках на сообщение на сайте. Добавьте следующее в functions.php или плагин для конкретного сайта, заменив example-post-type идентификатором типа вашего сообщения.

function example_rewrite() {
  add_rewrite_rule('^example-post-type/([0-9]{4})/([0-9]{1,2})/([^/]*)/?','index.php?post_type=example-post-type&year=$matches[1]&monthnum=$matches[2]&name=$matches[3]','top');
}
add_action('init', 'example_rewrite');

Это использует документированный API Rewrite здесь Чтобы найти больше советов по пониманию процесса см. здесь .

Нужно иметь в виду, что независимо от того, как вы это делаете, два сообщения не могут иметь одинаковый слаг, даже если у них разные даты. Это потому, что если схема постоянных ссылок когда-либо будет изменена, они могут конфликтовать и вызывать ошибки.

0 голосов
/ 13 июля 2015

Используйте это, это работает 100%:

'rewrite' => array('slug'=>date('Y').'/'.date('m').'/custom_post_type_slug','with_front'=>true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...