パーマリンクは私が作成したカスタムyoga-event
タイプの個々の投稿に対して(ついに)働いています。
そしてアーカイブはURLを書き換えることなく動作します。
http://website.localhost/?post_type=yoga-event
しかしget_post_type_archive_link( 'yoga-event' )
はfalseを返します。
これは私が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
)
私はこのように私自身の "アーカイブ"を作ることができます。
$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
しかし、私はregister_post_type
が取得している配列にはある種の設定ミスがあると思います。
何か洞察がありますか?
シモンズ:
//List Post Types
foreach ( get_post_types( '', 'names' ) as $post_type ) {
echo '<p>' . $post_type . '</p>';
}
(とりわけ)yoga-event
を返します。
あなたのregister_post_type
行を見ることができますか?それらは通常、register_post_type( 'some-post-type', $args );
のようなものです。
この例では、some-post-type
はget_post_type_archive_link( 'some-post-type' )
で使用するIDであり、書き換えスラッグyoga-event
ではありません。
コミュニティの1人が指摘した、上記のコードにタイプミスがありましたが、私がここで追加するのは、パズルの最後のピースは、このちょっとしたコード( SOベース /)です。 WPが理解している(出力する)CPTを調べることができます。
$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>";
また、この素晴らしい CPT Class はCPTを生成するための素晴らしい方法です。 (ただし、 "インスタンスメソッド"で追加する方法としてはうまく機能していないようなので、現在'has_archive' => True`` to the
register_post_types`配列を手動で追加しています。