Это кажется глупым вопросом. Но я не могу понять это :(.
Мне нужно отобразить кнопку дома, которая идет к URL-адресу архива пользовательского post_type (archive- {post_type} .php). Как я могу это сделать?
custom-post-types
templates
ariefbayu
источник
источник
yoursite.com/type-slug
, указывается, если явно не указано другое значение, например.yoursite.com/some-other-url
..Ответы:
Привет @ Тихо:
Оказывается, в WordPress 3.1 есть функция, которая делает именно то, что вы хотите, и она названа
get_post_type_archive_link()
; вот как бы вы назвали это (при условии, что пользовательский тип записи назван'product'
):Ниже приведен мой предыдущий ответ, прежде чем я обнаружил, что WordPress действительно имеет встроенную функцию для этого варианта использования.
Предыдущий ответ:
Если я не пропустил что-то в основном исходном коде для WordPress 3.1, я думаю, что вы ищете такую функцию,
get_archive_link()
которую вы могли бы вызвать следующим образом (предполагая, что пользовательский тип записи называется'product'
):А вот исходный код, который вы можете поместить в
function.php
файл вашей темы или в.php
файл для плагина, который вы, возможно, пишете:Я на самом деле работал над этой точной логикой в выходные, хотя я еще не уверен на 100%, что порядок логики в целом корректен во всех сценариях использования, которые может увидеть WordPress, хотя, вероятно, он будет работать для любого конкретного сайта.
Это также хорошая вещь, чтобы предложить добавить в WordPress через trac, что я думаю, я сделаю позже этим вечером.
источник
когда вы регистрируете тип записи, вы можете передать строку как slug с параметром «has_archive» и удостовериться, что вы также установили для rewrite либо true, либо массив, но не false, и тогда ваш URL-адрес архива CPT будет http://www.YOURDOMAIN.com / has_archive_slug например
если вы установите в вашем register_post_type, например:
тогда ваш единственный URL-адрес: http://www.YOURDOMAIN.com/product/postName, а ваш архивный URL-адрес: http://www.YOURDOMAIN.com/products/
источник
has_archive
это логическое значение, но теперь я знаю, что ему может быть задана строка, поэтому мой тип единственного пользовательского постаrecipe
может иметь слаг множественного числа/recipes/
'rewrite'
принимает только логическое значение или значение массива. Вместо того, что'rewrite' => 'product',
вы перечислили, оно должно быть'rewrite' => array( 'slug' => 'product' ),
.