※当サイトではアフィリエイト広告を利用しています

ホームページ作成

カスタム投稿でタグの一覧を表示する

本日、未明に『なにあいドットコム』にて写真集に撮影者情報を追加しました。

タグを使って、撮影者を登録しています。

20161105r19

クリックすると、撮影者の一覧が表示されます。

20161105r20

カスタム投稿でタグの一覧を表示する方法は、難しかったです。

テンプレートに以下のものを追加しました。

taxonomy-[カスタムタクソノミー名].php

私の場合は、functions.phpに以下のように作りました。

register_taxonomy(
'products-tag',
'products',
array(
'hierarchical' => false,
'update_count_callback' => '_update_post_term_count',
'label' => '写真のタグ',
'singular_label' => '写真のタグ',
'public' => true,
'show_ui' => true
)
);

よってテンプレートに付けた名前は、以下の通りです。

taxonomy-products-tag.php

このようにすることで、カスタム投稿でタグ表示するときにテンプレートを読んでくれます。
あとは、以下のように作りました。


<?php
// カスタム投稿タイプ「products」

if (( get_post_type() == 'products')) : ?>
<ul>
<?php

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// カスタム投稿タイプ「news」、カスタムタクソノミー「member」、ターム「kawatama」、新着4件取得
query_posts( array(
'post_type' => 'products',
'taxonomy' => 'products-tag',
'term' => 'products-tag-list',
'posts_per_page' => 10,
'paged' => $paged,
'order' => 'DESC'
)
);

if (have_posts()) :while (have_posts()) :
the_post();
?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
endif;
wp_reset_query();
?>
</ul>
<?php endif; ?>



<div>

<?php if(is_category()){
single_cat_title();echo "<h1>の写真一覧</h1>";
}else{
if(is_tag('products')){
single_cat_title();echo "<h1>の写真一覧</h1>";
}else{
echo "<h1>";
echo get_the_term_list( $post->ID,'products-tag','',',','' );
echo "の写真一覧</h1>";
}
}
?>
<p>みんなで彩る写真集です。oideyo@naniai.comまで送付するか七二会支所まで直接画像をお持ちください。</p>

<?php if (have_posts()): while(have_posts()) : the_post(); ?>
<div class="photo72">
<h2>
<?php
if(empty($post->post_content)){ the_title(); }
else{ ?><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> <?php }
?>

</h2>

<p style="text-align:right"><?php the_time('Y.m.d') ?></p>
<p><?php the_excerpt(); ?></p>
<?php echo get_the_term_list( $post->ID,'products-tag','タグ: ',',','' ); ?><br>
<?php if(empty($post->post_content)){ ?>
<div class="tags72"> | <?php the_tags(); ?></div>
<?php the_post_thumbnail(array(800,533),array( 'alt' =>get_the_title(), 'title' => get_the_title()));
}
else{ ?><div class="tags72"> | <?php the_tags(); ?></div><a href="<?php the_permalink() ?>"><?php the_post_thumbnail(array(800,533),array( 'alt' =>get_the_title(), 'title' => get_the_title())); ?></a> <?php }
?>
<br><div class="fb-like" data-href="<?php the_permalink() ?>" data-layout="button_count" data-action="like" data-show-faces="true" data-share="true"></div>
</div>
<?php endwhile; ?>
<?php endif ?>
</div>
</div>

<?php else: ?>
<?php if (have_posts()): while(have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
投稿日:<?php the_time('Y.m.d') ?> <div class="category72">カテゴリ:<?php the_category(', '); ?></div><div class="tags72"> | <?php the_tags(); ?></div>

<?php the_content(); ?>
投稿日:<?php the_time('Y.m.d') ?> カテゴリ:<?php the_category(', '); ?> <?php the_tags(); ?>

<?php endwhile; ?>
<?php endif ?>
<?php endif ?>

まとめ:カスタム投稿のカスタマイズは、難しいけど楽しい

本日は、6時間ほどかけて解決しました。

プログラミングは、楽しいですね!

 

-ホームページ作成
-