これはかなり一般的なトピックですが、私が抱えている問題を解決することはできないようです。どんな助けでも大歓迎です、私はこの時点で私の車輪を回しています。
カスタム投稿タイプUIプラグインを使用して、私はいくつかのカスタム投稿タイプを作成しました(この例では 'blog'を使用します)。私はhas_archive => trueをセットし、そして私のページ付けを適切に機能させるためにカスタムポストタイプアーカイブと呼ばれるプラグインも使用しました。これまでのところ、私はパーマリンク、タグ、カテゴリ、およびページ付けを機能させています。しかし、問題は、wp_get_archives関数を使用しようとしたときです。私はこれがCPTをつかまないことを理解しているので、私はカスタム投稿タイプアーカイブプラグイン(wp_get_custom_post_archives)に付いてくる機能を使いました。引数を微調整する方法に応じて、404を吐き出すか、アーカイブをロードしますが、選択した月に固有のものだけでなく、すべてのエントリを表示するだけです。理想的には、毎月のアーカイブを表示したいだけです。
<?php wp_get_post_type_archives('blog');
ここで見てみましょう: http://www.metropoliscreative.com/coding/w/blog/
私はこれを使って投稿の種類を登録し、それが正しく行われたと信じています。この時点で何が悪いのかわからない。
register_post_type('blog', array(
'label' => 'Blog',
'description' => 'Blog Entries',
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'capability_type' => 'post',
'hierarchical' => false,
'rewrite' => array(
'slug' => 'blog'),
'has_archive' => true,
'query_var' => true,
'supports' => array('title','editor','excerpt','trackbacks','custom-fields','comments','revisions','thumbnail','author','page-attributes',),
'taxonomies' => array('category','post_tag',),
'labels' => array (
'name' => 'Blog',
'singular_name' => 'Blog',
'menu_name' => 'Blog',
'add_new' => 'Add Blog',
'add_new_item' => 'Add New Blog',
'edit' => 'Edit',
'edit_item' => 'Edit Blog',
'new_item' => 'New Blog',
'view' => 'View Blog',
'view_item' => 'View Blog',
'search_items' => 'Search Blog',
'not_found' => 'No Blog Found',
'not_found_in_trash' => 'No Blog Found in Trash',
'parent' => 'Parent Blog',
),) );
wp_get_archives() functionのgetarchives_where
フックを使用できます
この関数をfunctions.phpに追加してください。
function Cpt_getarchives_where_filter( $where , $r ) {
$post_type = 'blog';
return str_replace( "post_type = 'post'" , "post_type = '$post_type'" , $where );
}
それからあなたがあなたの毎月のアーカイブが欲しいときにこれを入れてください:
add_filter( 'getarchives_where' , 'Cpt_getarchives_where_filter' , 10 , 2 );
wp_get_archives();
remove_filter('getarchives_where' , 'Cpt_getarchives_where_filter' , 10 );