カテゴリのタイトル(a〜z)に基づいて自分の投稿をどのように出力できるか、次にカテゴリ内の投稿のタイトルにどのように出力できるかを考えてみます。
カテゴリー
- で始まる投稿
- 2番目に出力されたいのですが
- さあ、もうすでに出力してください
Bカテゴリー
- で始まる別の投稿
- 気にしないで、Bの別のタイトルを思い付くことはできません
- 私はあなたがポイントを得たと思います
どうやってこれを達成できますか?
カテゴリ別に分類するには、カテゴリのリストをループ処理してから各カテゴリについてクエリする必要があります。
$categories = get_categories( array ('orderby' => 'name', 'order' => 'asc' ) );
foreach ($categories as $category){
echo "Category is: $category->name <br/>";
$catPosts = new WP_Query( array ( 'category_name' => $category->slug, 'orderby' => 'title' ) );
if ( $catPosts->have_posts() ){
while ( $catPost->have_posts() ){
$catPost->the_post();
echo "<a href='the_permalink()'>the_title()</a>";
}
echo "<p><a href='/category/$category->slug'>More in this category</a></p>";
}//end if
} //end foreach
wp_reset_postdata();
カテゴリ/分類法によるGROUP Post
とNOT SORT
を意味すると思います。
ここで、category/taxonomy
によるGROUP
へのコードです
$terms = get_terms( 'my_cat_name' );
ここで、cat_name
nameは、このように登録すると、分類法の名前です。
register_taxonomy( 'my_cat_name', array( 'custom_post_name' ), $args )
Query
でそれを使ってください。
$args = array(
'post_type' => 'custom_post_name',
'my_cat_name' => $term->slug,
'posts_per_page' => $no_of_posts,
);
完全なコード
$terms = get_terms( 'CUSTOM_TAXONOMY_SLUG' );
if ( ! empty( $terms ) && ! is_wp_error( $terms ) ){
$output .= '<ul class="category-list">';
foreach ( $terms as $term ) {
$output .= '<li class="single-cat">';
$output .= ' <h3>' . $term->name . '</h3>'; // Taxonomy/Category Name
$args = array(
'post_type' => 'POST_TYPE_SLUG',
'CUSTOM_TAXONOMY_SLUG' => $term->slug,
'posts_per_page' => -1,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
$output .= '<ul class="cat-post-list">';
while ( $the_query->have_posts() ) {
$the_query->the_post();
$output .=' <li class="cat-single-post">';
$output .=' <h4><a href="'.get_the_permalink().'">' .get_the_title(). '</a></h4>';
$output .=' </li><!-- .cat-single-post -->';
}
$output .= '</ul><!-- .cat-post-list -->';
}
wp_reset_postdata();
$output .= '</li><!-- .single-cat-item -->';
}
$output .= '</ul><!-- .category-list -->';
}
Maheshwaghmareの仕事を拡大する。
<?
$terms = get_terms( 'CUSTOM_TAXONOMY' );
if ( ! empty( $terms ) ){ ?>
<div class="POST_TYPE_PLURAL">
<? foreach ( $terms as $term ) {
//print_r($term) // DEBUG;
$term_slug = $term->slug;
$term_name = $term->name;
$term_description = $term->description;
?>
<div class="POST_TYPE_CATEGORY <?=$term_slug; ?>">
<h1 class="section-head"> <?=$term_name; ?> </h1>
<p><?=$term_description; ?> </p>
<?
$args = array(
'post_type' => 'CUSTOM_POST_TYPE',
'tax_query' => array(
array(
'taxonomy' => 'CUSTOM_TAXONOMY',
'field' => 'slug',
'terms' => $term_slug,
),
),
'posts_per_page' => -1,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) : ?>
<? while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="POST_TYPE_SINGLE">
<h3> <? the_title(); ?> </h3>
<? // MORE TEMPLATING CODE ?>
</div>
<? endwhile;
endif;
wp_reset_postdata(); ?>
</div>
<? } // foreach
} //if terms
?>
新しいwp_query
インスタンスにorderby
パラメータを使用できます。
$query = new WP_Query( array ( 'orderby' => 'title', 'order' => 'DESC' ) );
すべてのカテゴリに対応するには、別々のインスタンスを使用します。
ここでより多くの情報: http://codex.wordpress.org/Class_Reference/WP_Query