web-dev-qa-db-ja.com

カテゴリとタグが機能していません。

私は過去6ヶ月間取り組んできた主要なWebデザインプロジェクトの最終的なデバッグ段階にあります。

サイト自体は、さまざまなカスタム投稿タイプなどを使って(4つの既存のサイトを1つの巨大なサイトにマージする)少し巨大になったことに基づいています...

要点 - 私のカテゴリーとタグのアーカイブは、同じカテゴリー/タグ内のブログ投稿のリストを表示するのではなく、いずれかのブログの中でサイドバーのカテゴリー/タグをクリックすると機能しなくなります。それはただ無のリストに行くだけです:

ブログの例: http://whitewatergroup.eu/leadership-blog/

カテゴリ/タグアーカイブの例: http://whitewatergroup.eu/category/100-lessons-on-happiness/

私はこのテンプレートに基づいてサイトを作成しました。カーボンライト:

私はこの数週間、私の頭脳を悩ませてきました - しかし、それは私を超えています - 誰かが役に立ち、私がどうやってこれを台無しにしたかに関して正しい方向に私を向けることができます!

カスタム投稿を正しく登録しなかったのではないかと思うようになりました。ここで使用したコードの例を示します。

add_action( 'init', 'register_cpt_womens_blog' );
function register_cpt_womens_blog() {
    $labels = array(
        'name' => _x( 'Women in Business Blog', 'womens_blog' ),
        'singular_name' => _x( 'Womens Blog', 'womens_blog' ),
        'add_new' => _x( 'Add New', 'womens_blog' ),
        'add_new_item' => _x( 'Add New Womens Blog', 'womens_blog' ),
        'edit_item' => _x( 'Edit Womens Blog', 'womens_blog' ),
        'new_item' => _x( 'New Womens Blog', 'womens_blog' ),
        'view_item' => _x( 'View Womens Blog', 'womens_blog' ),
        'search_items' => _x( 'Search Women in Business Blog', 'womens_blog' ),
        'not_found' => _x( 'No women in business blog found', 'womens_blog' ),
        'not_found_in_trash' => _x( 'No women in business blog found in Trash', 'womens_blog' ),
        'parent_item_colon' => _x( 'Parent Womens Blog:', 'womens_blog' ),
        'menu_name' => _x( 'Women in Business Blog', 'womens_blog' ),
    );
    $args = array(
        'labels' => $labels,
        'hierarchical' => false,
        'description' => 'Women in Business Blog',
        'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes' ),
        'taxonomies' => array( 'category', 'post_tag', 'page-category' ),
        'public' => true,
        'show_ui' => true,
        'show_in_menu' => true,
        'menu_position' => 5, 
        'show_in_nav_menus' => true,
        'publicly_queryable' => true,
        'exclude_from_search' => false,
        'has_archive' => true,
        'query_var' => true,
        'can_export' => true,
        'rewrite' => true,
        'capability_type' => 'post',
    'yarpp_support' => true
    );
    register_post_type( 'womens_blog', $args );
} 

誰かが私を助けることができることを願っています!

乾杯

2
harry

カテゴリアーカイブページとタグアーカイブページは、投稿タイプpostのみを照会します。カスタム投稿タイプをそれらのページに表示したい場合は、 pre_get_posts でクエリを変更して追加のタイプを追加する必要があります。

function wpd_womens_blog_taxonomy_queries( $query ) {
    if ( ( $query->is_category() || $query->is_tag() )
        && $query->is_main_query() ) {
            $query->set( 'post_type', array( 'post', 'womens_blog' ) );
    }
}
add_action( 'pre_get_posts', 'wpd_womens_blog_taxonomy_queries' );
3
Milo

あなたはあなたのカスタム投稿タイプ(leaders_blog_post、womens_blogなど)で既存の分類法を登録するためにregister_taxonomy_for_object_type()を使うべきです。 register_taxonomy_for_object_type()のコーデックス参照

女性向けブログの例:

register_taxonomy_for_object_type('category', 'womens_blog');

それはあなたのregister_cpt_womens_blog関数の一番下に追加することができます。 register_taxonomy_for_object_type関数の使用例については、 Pippinの投稿 もご覧ください。

0
TomHarrigan