web-dev-qa-db-ja.com

カスタム投稿タイプカテゴリのアーカイブリスト

カスタム投稿タイプの 'recipe'を使用したレシピプラグインを使用しています。私は現在、ページ上の各カテゴリからレシピの複数のリストを持っています。各カテゴリリストのタイトルを、各カテゴリ内の投稿のアーカイブリストにリンクするようにしています。これはうまくいきません、そして私が新しいアーカイブテンプレートを作成する必要があるかどうか、あるいはこのコードの中でそれができるかどうかはわかりません。

<ul class="subcats-list">
            <h2 class="subcats-title"><a href="<?php echo get_category_link(39); ?>" title="No Cook"><?php echo get_cat_name(39); ?></a></h2>
                <?php
                $recipes = new WP_Query();
                $recipes->query('showposts=5&orderby=Rand&cat=39&post_type=recipe');

                while ($recipes->have_posts()) : $recipes->the_post(); ?>
                  <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
                <?php endwhile; ?>

        </ul><!-- subcat -->

注:各カテゴリリストのタイトルは現在カテゴリアーカイブページにリンクしていますが、投稿は表示されていません。ただの黒いアーカイブページ。

1
chris_s

あなたはどのようにあなたのカテゴリー「39」とのリンクを作りましたか?それは慣習的な分類法ですか?

これが私がしたテストで、うまくいきます。

functions.phpで、私はカスタム投稿タイプ 'recipe'を作成しました。

add_action( 'init', 'create_recipe' );
function create_recipe() {
    register_post_type( 'recipe',
        array(
            'labels' => array(
                'name' => __( 'Recipes' ),
                'singular_name' => __( 'Recipe' )
                ),
            'public' => true,
            'show_ui' => true,
            'publicly_queryable' => true,
            'exclude_from_search' => false,
            'menu_position' => 4,
            'query_var' => true,
            'supports' => array( 'title', 'editor')

        )
    );
}

それから私はこのカスタム投稿タイプに関連するいくつかのカテゴリを取得するためにカスタム分類要素を作成しました:

add_action( 'init', 'register_cate_livro', 0 );
function register_cate_livro() {
    register_taxonomy(
        'cate-recipe',
        array( 'recipe' ),
        array(
            'public' => true,
            'labels' => array(
                'name' => __( 'Categorias' ),
                'singular_name' => __( 'Categoria' )
            ),
        'hierarchical' => true,
        'query_var' => 'cate-livro'
        )
    );
}

私はそれを 'cate-recipe'と命名しました。

管理者の「レシピ」の下に3つのニュース記事を書き、2つのカスタムカテゴリ「cate-1」と「cate」を作成しました。 -2 '。

それからあなたのコードを使って、私はカスタム投稿タイプから投稿をロードしました。うまく機能しますが、カスタム分類パラメーターを考慮に入れません。だからここで私は最後にそれを作った方法です:

<ul class="subcats-list">
    <h2 class="subcats-title"><a href="<?php echo get_category_link(12); ?>" title="No Cook"><?php echo get_cat_name(39); ?></a></h2>
        <?php
        $recipes = new WP_Query();
        $args = array(
            'showposts'     =>  5,  
            'orderby'       =>  'Rand',
            'post_type'     =>  'recipe',
            'tax_query'     => array(
                array(
                    'taxonomy' => 'cate-recipe',
                    'field' => 'slug',
                    'terms' => 'cate-1'
                )
            )
        );
        $recipes->query($args);

        while ($recipes->have_posts()) : $recipes->the_post(); ?>
          <li><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></li>
        <?php endwhile; ?>

</ul><!-- subcat -->

カスタム分類法 'cate-recipe'から用語 'cate-1'への投稿を照会するために 'tax_query'パラメーターを使用しています、私は管理者で作成したこと。

そしてそれは、この「特別なカテゴリ」を持つ投稿だけをロードします。

これが役立つことを願っています、それがあなたのニーズに合っているかどうか私に知らせてください。

3
kevin