###前提・実現したいこと
現在WordPressでカスタム投稿のタームを年別に一覧表示して、サイドバーのタームを選びクリックするとすでに用意してある"taxonomy-intag.php"のページに飛び選択したタームが年別ごとにリストに表示させているようにしたいです。
下記の画像はWordPress化する前に用意しておいた年別予定のレイアウトです。
※カスタム投稿自体を最近知ったばかりなのでtaxonomy.phpやアーカイブなどについての知識がありません。
みなさまのお力をお貸しください。
###HTMLソース
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title></title> </head> <body> <section class="Section l-content"> <div class="l-main"> <div class="archivesTab"> <nav class="archives-Nav"> <ul class="archives-nav__List"> <li class="archives-nav__Item"> <a class="archives-nav__Link" href="#">2015</a> </li></nav> </div> <section class="archivesContent"> <ol class="NewsList"> <li class="NewsList__item event"> <span class="NewsList__cat attention is-Event">ぶどう</span> <time class="NewsList__head" datatime="2016-06-29">2016.06.29</time> <span class="NewsList__body">最新のニュースを入力してください。</span> </li><li class="archives-nav__Item"> <a class="archives-nav__Link" href="#">2016</a> </li> <li class="archives-nav__Item"> <a class="archives-nav__Link" href="#">2017</a> </li> </ul>
</li><li class="NewsList__item other"> <span class="NewsList__cat is-Other">みかん</span> <time class="NewsList__head" datatime="2016-06-29">2016.06.29</time> <span class="NewsList__body">最新のニュースを入力してください。</span>
</li><li class="NewsList__item media"> <span class="NewsList__cat is-Media">いちご</span> <time class="NewsList__head" datatime="2016-06-29">2016.06.29</time> <span class="NewsList__body">最新のニュースを入力してください。</span>
</li> </ol> <ul class="listPager"> <li><a href="#">1</a></li> <li><a href="#">2</a></li> <li><a href="#">3</a></li> </ul> </section> </div> <div class="l-sub"> <div class="l-flex"> <div class="subcontent"> <h2 class="subcontent-ttl">ターム一覧</h2> <nav class="category-Nav"> <ul class="category-List"> <li class="category-Item"> <a class="category-Link" href="#"> いちご </a> </li> <li class="category-Item"> <a class="category-Link" href="#"> りんご </a> </li> <li class="category-Item"> <a class="category-Link" href="#"> ぶどう </a> </li> <li class="category-Item"> <a class="category-Link" href="#"> みかん </a> </li> </ul> </nav> </div> <div class="subcontent"> <h2 class="subcontent-ttl">最新のニュース</h2> <nav class="category-Nav"> <ul class="category-List"> <li class="category-Item"> <a class="category-Link" href="#"> 新しい投稿 </a> </li> <li class="category-Item"> <a class="category-Link" href="#"> 新しい投稿1 </a> </li> </ul> </nav> </div> </div> </div><!-- l-sub end --> </section> </body> </html> ``` ```WordPressソース(functions.php) //カスタム投稿 function create_post_type(){ register_post_type('info', array( 'labels' => array( 'name' => 'お知らせ', 'singular_name' => 'お知らせ' ), 'public' => true, 'menu_position' => 5, 'hierarchicla' => false, 'has_archive' => true, 'supports' => array( 'title', 'thumbnail', ) ) ); }<li class="NewsList__item media"> <span class="NewsList__cat is-Media">みかん</span> <time class="NewsList__head" datatime="2016-06-29">2016.06.29</time> <span class="NewsList__body">最新のニュースを入力してください。</span>
add_action('init','create_post_type',1);
//カスタム投稿の分類を作成
function create_taxonomies(){
register_taxonomy('intag', array('info'),
array(
'label' => 'お知らせタグ',
'labels' => array(
'add_new_item' => '新規タグを追加',
),
'public' => true,
'hierarchical' => false,
'rewrite' => array('with_front' => false),
)
);
}
add_action('init','create_taxonomies',1)
```上記のHTMLソースをWordPress化 <?php get_header(); ?> <section class="Section l-content"> <div class="l-main"> <div class="archivesTab"> <nav class="archives-Nav"> <ul class="archives-nav__List"> <?php wp_get_archives();?> </ul> </nav> </div> <?php $taxonomy_slug = 'intag'; $args = array( 'post_type' => 'info', //カスタム投稿タイプ 'orderby' => 'date', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => $taxonomy_slug, 'field' => 'slug', ); <?php if( have_posts()) : while ( have_posts() ) : the_post(); ?> <section class="archivesContent"> <ol class="NewsList"> <li class="NewsList__item event"> <span class="NewsList__cat attention is-Event"></span> <time class="NewsList__head" datatime=""><?php get_post_time('Y.m.d'); ?></time> <span class="NewsList__body"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></span> </li> </ol> <?php endwhile; endif; ?> <?php wp_pagenavi(); ?> </section> </div> <div class="l-sub"> <div class="side-column"> <section class="side-section"> <h2 class="side-section_ttl">New Post<small>最近のお知らせ</small></h2> <ul class="side-section_nav"> <?php $args = array( 'numberposts' => 5, 'post_type' => 'info' ); $customPosts = get_posts($args); if($customPosts) : foreach($customPosts as $post) : setup_postdata($post); ?> <li class="side-section_list"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; ?> <?php else: ?> <p>記事がありませんでした。</p> <?php endif; wp_reset_postdata(); ?> </ul> </section> <section class="side-section"> <h2 class="side-section_ttl">Archive<small>タグ一覧</small></h2> <ul class="side-section_nav"> <?php $args = array( 'taxonomy' => 'intag', 'orderby' => 'info', 'order' => ' ASC', 'hide_empty' => false, ); $the_query = new WP_Term_Query($args); foreach($the_query->get_terms() as $term){ $term_link = get_term_link($term->slug,'intag'); ?> <li><a href="<?php echo $term_link; ?>"><?php echo $term->name; ?></a></li> <?php } ?> </ul> </section> </div> </div> </article> </section> <?php get_footer(); ?>
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。