①聞きたいこと
category.phpを設定したが、category.phpの内容が反映されない原因を知りたい
②作業内容
Wordpressの管理画面より、固定ページ「news-blog」というページを作成
スラック名は「news-blog」に設定。
「page-news-blog.php」と言うファイルを作成し、以下を記述。
php
1<?php get_header() ?> 2<?php 3$paged = (int) get_query_var('paged'); 4?> 5 <div class="top__header"> 6 <h2 class="top__header__message"><span class="top__header__message--text">Blog<br></span>ブログ</h2> 7 </div> 8 9 <div class="blog section"> 10 <div class="inner"> 11 <h2 class="section-top"> 12 <span class="section-sub">Popular</span> 13 <div class="section-title">人気記事</div> 14 <div class="section-border"><div class="section-circle"></div><div class="section-circle"></div><div class="section-circle"></div></div> 15 </h2> 16 <?php 17 $args = array( 18 'posts_per_page' => 5, 19 'paged' => $paged, 20 'orderby' => 'post_date', 21 'order' => 'DESC', 22 'post_type' => 'post', 23 'post_status' => 'publish', 24 ); 25 $the_query = new WP_Query($args); 26 ?> 27 <div class="blog__latest"> 28 <?php 29 if ( $the_query->have_posts() ) : ?> 30 <?php 31 while ( $the_query->have_posts() ) : 32 $the_query->the_post(); ?> 33 <a href="<?php the_permalink(); ?>" class="blog__latest__item"> 34 <div class="blog__latest__content"> 35 <h3 class="blog__latest__content--text"><?php the_title() ; ?></h3> 36 <time class="blog__latest__content--date" datetime="<?php the_time('c');?>"><?php the_time('Y/n/j'); ?></time> 37 </div> 38 </a> 39 <?php 40 endwhile; 41 ?> 42 <?php endif; ?> 43 </div> 44 <h2 class="section-top section"> 45 <span class="section-sub">New</span> 46 <div class="section-title">新着記事</div> 47 <div class="section-border"><div class="section-circle"></div><div class="section-circle"></div><div class="section-circle"></div></div> 48 </h2> 49 <div class="blog__new"> 50 <?php 51 $the_query = new WP_Query( array( 52 'post_status' => 'publish', 53 'post_type' => 'post', 54 'paged' => $paged, 55 'posts_per_page' => 6, 56 'orderby' => 'date', 57 'order' => 'DESC' 58 ) ); 59 if ($the_query->have_posts()) : 60 while ($the_query->have_posts()) : $the_query->the_post(); ?> 61 <a href="<?php the_permalink(); ?>" class="blog__new__item"> 62 <div class="blog__new__picture"> 63 <?php 64 global $post; 65 $last_post_ids = array(); 66 $lastposts = get_posts('posts_per_page=1'); 67 foreach($lastposts as $lastpost) { 68 $last_post_ids[] = $lastpost->ID; 69 } 70 ?> 71 <?php if ( in_array( $post->ID, $last_post_ids ) ) : ?><div class="blog__new__picture--icon">New</div><?php endif; ?> 72 </div> 73 <div class="blog__new__content"> 74 <h3 class="blog__new__content--text"><?php the_title() ; ?></h3> 75 <time class="blog__new__content--date" datetime="<?php the_time('c');?>"><?php the_time('Y/n/j'); ?></time> 76 </div> 77 </a> 78 <?php 79 endwhile; 80 ?> 81 </div> 82 <?php endif; ?> 83 <?php 84 $args = array( 85 'orderby' => 'count', 86 'order' => 'DSC' 87 ); 88 $categories = get_categories( $args ); 89 foreach( $categories as $category ){ 90 echo '<li class="news--page__block__right__category--item"><a class="news--page__block__right__category--name" href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a> </li> ';} 91 ?> 92 </div> 93 </div> 94<?php get_footer() ?>
「category.php」ファイルも作成。
※一旦仮で以下のように設定
php
1<?php get_header() ?> 2<?php get_footer() ?>
「single.php」ファイルも作成して以下を記述
php
1<?php get_header(); 2$category = get_the_category(); 3?> 4 5 <div class="blog__single container"> 6 <div class="blog__single__main"> 7 <div class="blog__single__main__top"> 8 <p class="blog__single__main__top--date"><?php the_time( 'Y.m.j' ); ?></p> 9 <p class="blog__single__main__top--category"><?php my_the_post_category( false ); ?></p> 10 </div> 11 <h2 class="blog__single__main--title"><?php the_title()?></h2> 12 <div class="blog__single__main__content"> 13 <?php echo the_content(); ?> 14 </div> 15 <div class="blog__single__main__new"> 16 <?php if( has_category() ) { 17 $post_cats = get_the_category(); 18 $cat_ids = array(); 19 foreach($post_cats as $cat) { 20 $cat_ids[] = $cat->term_id; 21 } 22 } 23 $myposts = get_posts( array( 24 'post_type' => 'post', 25 'posts_per_page' => '1', 26 'post__not_in' => array( $post->ID ), 27 'category__in' => $cat_ids, 28 'orderby' => 'rand' 29 ) ); 30 if( $myposts ): ?> 31 <?php foreach($myposts as $post): setup_postdata($post);?> 32 <div class="blog__single__main__new__body"> 33 <div class="blog__single__main__new__body__content"> 34 <div class="blog__single__main__new__body--title"><?php the_title(); ?></div><!-- /related-item-title --> 35 <div class="blog__single__main__new__body--text"><?php the_content(); ?></div><!-- /related-item-title --> 36 </div> 37 <div class="blog__single__main__new__body__footer"> 38 <a class="blog__single__main__new__body--link" href="<?php the_permalink(); ?>">続きを読む</a> 39 </div> 40 </div> 41 <?php endforeach; wp_reset_postdata(); ?> 42 <?php endif; ?> 43 </div> 44 </div> 45 <div class="blog__single__sidebar"> 46 <div class="blog__single__category"> 47 <h2 class="blog__single__category--title">カテゴリー</h2> 48 <div class="blog__single__category__ranking"> 49 <?php 50 $categories = get_categories(); 51 foreach ($categories as $category): 52 ?> 53 <a class="blog__single__category__ranking--link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"><i class="fa fa-chevron-circle-right blog__single__category__ranking--link--icon"></i><?php echo $category->name; ?></a> 54 <?php endforeach; ?> 55 </div> 56 </div> 57</div> 58 59 </div> 60 61<?php get_footer(); ?>
③起きている問題
「single.php」に記載のある、以下の箇所をクリックしてもcategory.phpではなく、固定ページである「page-news-blog.php」が反映されてしまう。
php
1 <a class="blog__single__category__ranking--link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"> 2<i class="fa fa-chevron-circle-right blog__single__category__ranking--link--icon"></i> 3<?php echo $category->name; ?> 4</a>
④試したこと
- category用のurlが間違っていないか確認
- プラグインを一旦全て無効化して原因確認
プラグインの種類
・ AddToAny Share Buttons
・ All-in-One WP Migration
・ Insert PHP Code Snippet
・ Show Current Template
・ User Role Editor
・ WP-Members
- パーマリンクの設定を以下のように設定
・ カスタム構造
/%category%/%postname%
・ カテゴリーベース
・
原因不明で解決できず困っているため、解決策などご教授願いたいです。
よろしくお願いしま。
あなたの回答
tips
プレビュー