私は書評ブログを運営していて、私は異なったもの(評価、本のタイトル、そして著者)によってレビューをリストする複数のページを持っています
私は作者のためのカスタム分類法を持っています、そして私は基本的に私のコードにそれらに記事があるすべての用語をリストしてそれからポストをリストしてもらいます。それらはすべて最初の文字のアルファベット順です。私がやりたいことは、それが最初の手紙をつかみ、そのようにしてすべてを切り取ることです。今のようになります:
Bray、Libba
Elkeles、Simone
私はそれがのようになりたい
B
リバ、ブレイ
E
エルクレス、シモーネ
そのため、基本的には自分が持っているとおりに用語を表示するだけですが、各文字のセクションを表示すると、その文字で始まる用語が表示され、投稿が一覧表示されます。
<?php
$taxonomy = 'authors';// e.g. post_tag, category
$param_type = 'authors'; // e.g. tag__in, category__in
$term_args=array(
'orderby' => 'name',
'order' => 'ASC'
);
$terms = get_terms($taxonomy,$term_args);
if ($terms) {
foreach( $terms as $term ) {
$args=array(
"$param_type" => $term->slug,
'post_type' => 'reviews',
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1,
'meta_key' => 'booktitle',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
echo '<h2>'.$term->name.'</h2>';
while ($my_query->have_posts()) : $my_query->the_post();
?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php echo c2c_get_custom('booktitle'); ?></a> by <?php echo c2c_get_custom('author'); ?><br />
<?php
endwhile;
}
}
}
wp_reset_query(); // Restore global post data stomped by the_post().
?>
このコードを試してください。
<?php
$taxonomy = 'authors';// e.g. post_tag, category
$param_type = 'authors'; // e.g. tag__in, category__in
$term_args=array(
'orderby' => 'name',
'order' => 'ASC'
);
$terms = get_terms($taxonomy,$term_args);
if ($terms) {
$first_letter = null;
foreach( $terms as $term ) {
$flag = 0;
if( $first_letter != substr( $term->name, 0, 1 ) ) {
$first_letter = substr( $term->name, 0, 1 );
$flag = 1;
}
if( $flag ) {
echo '<strong>'.$first_letter.'</strong>'; // Output the first letter
}
$args=array(
"$param_type" => $term->slug,
'post_type' => 'reviews',
'post_status' => 'publish',
'posts_per_page' => -1,
'caller_get_posts'=> 1,
'meta_key' => 'booktitle',
'orderby' => 'meta_value',
'order' => 'ASC'
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
echo '<h2>'.$term->name.'</h2>';
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php echo c2c_get_custom('booktitle'); ?></a> by <?php echo c2c_get_custom('author'); ?><br /><?php
endwhile;
}
}
}
wp_reset_query(); // Restore global post data stomped by the_post().
?>