Les liens permanents fonctionnent (enfin) pour des publications individuelles du type yoga-event
personnalisé que j'ai créé.
Et archiver fonctionne sans réécriture d'URL:
http://website.localhost/?post_type=yoga-event
Cependant, get_post_type_archive_link( 'yoga-event' )
renvoie false.
C'est le tableau que j'envoie à register_post_type
:
Array
(
[labels] => Array
(
[name] => Yoga Events
[singular_name] => Yoga Event
[menu_name] => Yoga Events
[all_items] => Yoga Events
[add_new] => Add New
[add_new_item] => Add New Yoga Event
[edit_item] => Edit Yoga Event
[new_item] => New Yoga Event
[view_item] => View Yoga Event
[search_items] => Search Yoga Events
[not_found] => No Yoga Events found
[not_found_in_trash] => No Yoga Events found in Trash
[parent_item_colon] => Parent Yoga Event:
)
[public] => 1
[rewrite] => Array
(
[slug] => yoga-event
)
[has_arhchive] => 1
[menu_icon] => dashicons-book-alt
)
Je peux en quelque sorte créer ma propre "archive" comme ceci:
$type = 'yoga-event';
$args=array(
'post_type' => $type,
'post_status' => 'publish',
'posts_per_page' => -1,
'ignore_sticky_posts'=> 1);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) :
$my_query->the_post();
?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?> </a></p>
<?php
endwhile;
} // list of yoga-event items
Mais je suppose que le tableau que register_post_type
est en train de recevoir présente une sorte de mauvaise configuration.
Des idées?
PS:
//List Post Types
foreach ( get_post_types( '', 'names' ) as $post_type ) {
echo '<p>' . $post_type . '</p>';
}
Retourne yoga-event
(entre autres).
Puis-je voir votre ligne register_post_type
? Ceux-ci sont généralement comme: register_post_type( 'some-post-type', $args );
.
Dans cet exemple, some-post-type
correspond à l'ID que vous utilisez dans get_post_type_archive_link( 'some-post-type' )
, et non à la clé de réécriture yoga-event
.
Il y avait une faute de frappe dans le code ci-dessus, ce qu'une partie de la communauté a signalé, mais j'ajouterai ici que la dernière pièce du puzzle pour moi était ce petit bout de code ( également basé sur SO ) par lequel nous pouvons examiner un CPT tel que WP le comprend (affiche):
$type = 'yoga-event';
//let's look at our CPT:
$type_obj = get_post_type_object($type);
mz_pr($type_obj);
function mz_pr($message) {
echo "<pre>";
print_r($message);
echo "</pre>";
De plus, cette classe merveilleuse CPT est un excellent moyen de générer le CPT. (Notez que j'ajoute actuellement le tableau 'has_archive' => True`` to the
register_post_types` manuellement, car la méthode pour l'ajouter via une "méthode d'instance" ne semblait pas fonctionner.)