###前提・実現したいこと
WPでサイトを作っています。あるサイトのデータの修正を頼まれました。少し前まではちゃんと表示されていたCustom Post Type UIで登録したデータの一覧が表示されなくなったそうです。元は自分が組んだシステムではないのと、PHP初心者なので八方塞がりです。
ちゃんと表示するためにはどこを修正すればいいでしょうか?
###該当のソースコード
/** * Template Name: Product manga */ get_header('genre'); //URLからページ数を取得する $wparms = split("/",$_SERVER["REQUEST_URI"]); $i=0; foreach ($wparms as &$value) { $i = $i + 1; if ($value == 'page'){ $paged = $wparms[$i]; } } //注目のキーワード取得 $content = get_post($post->ID); $attention_keywords = split(",",$content->post_content); //キーワード取得 if(isset($_GET['keyword']) && !empty($_GET['keyword'])){ $KEYWORD = htmlspecialchars($_GET['keyword']); $INDEX_TITLE = '商品検索結果'; }else{ $KEYWORD = ''; $INDEX_TITLE = 'タイトル一覧'; if (!empty($_GET['manga'])){ $INDEX_TITLE = '「' . htmlspecialchars($_GET['manga']) . "」の" . $INDEX_TITLE; } } //ソートパラメータ取得 if(isset($_GET['order'])){ switch ($_GET['order']) { case '1': $ORDER = 'DESC'; break; case '2': $ORDER = 'ASC'; break; default: $ORDER = 'DESC'; break; } }else{ $ORDER = 'DESC'; } //データ取得設定 $args = array( 'post_type' => 'product_manga', 'post_status' =>'publish', 'paged' => $paged, 's' => $KEYWORD, 'meta_key' => '発売日(ソート用)', 'orderby' => 'meta_value', 'order' => $ORDER, 'posts_per_page' => '10' ); if(isset($_GET['manga']) && !empty($_GET['manga'])){ $args = array( 'post_type' => 'product_manga', 'post_status' =>'publish', 'paged' => $paged, 'meta_key' => '発売日(ソート用)', 'orderby' => 'meta_value', 'order' => $ORDER, 'posts_per_page' => '10', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'manga', 'terms' => $_GET['manga'], 'include_children' => true, 'field' => 'slug', 'operator' => 'IN' ), ), ); } //データ取得 query_posts( $args ); //ヒット件数取得 $HITS = $wp_query->found_posts; if (empty($paged)){ $paged = 1; } if ($wp_query->found_posts > ($paged * 10)){ $EPAGE = $paged * 10; }else{ $EPAGE = $HITS; } ?> <div id="contents" class="clearfix"> <!-- 再検索エリア --> <!-- 見出し --> <?php if(empty($_GET['manga'])){ ?> <div class="row"> <div class="col span_24"> <h2 title="">キーワードで検索</h2> </div> </div><!-- row --> <!-- /見出し --> <!-- フォーム --> <div class="row search2_bg_up"> <form action="<?php bloginfo('url'); ?>/products/manga/" method="get"> <div class="colf span_6 span_dummy"> </div> <div class="colf span_10"> <div class="fright"> <input type="text" size="60" name="keyword" value="<?php echo $KEYWORD; ?>" placeholder="検索キーワード" class="search2"> </div> </div> <div class="colf span_4"> <div class="fright"> <span class="search2_link" onclick="submit()">検索</span> </div> </div> </form> </div><!-- row search2_bg_up--> <!-- /フォーム --> <!-- 注目キーワード --> <!-- 注目キーワードが無い、必要ない場合はこのエリアを削除 --> <div class="row search2_bg_dn"> <div class="colf span_6 span_dummy"> </div> <div class="colf span_4"> <span class="bold">注目キーワード</span> </div> <div class="colf span_14"> <!-- 注目キーワードの数だけ配置 --> <a href="<?php bloginfo('url'); ?>/products/manga/?keyword=<?php echo $attention_keywords[0]; ?>">≫<?php echo $attention_keywords[0]; ?></a> <a href="<?php bloginfo('url'); ?>/products/manga/?keyword=<?php echo $attention_keywords[1]; ?>">≫<?php echo $attention_keywords[1]; ?></a> <a href="<?php bloginfo('url'); ?>/products/manga/?keyword=<?php echo $attention_keywords[2]; ?>">≫<?php echo $attention_keywords[2]; ?></a> </div> </div><!-- row search2_bg_dn--> <!-- /注目キーワード --> <?php } ?> <!-- /再検索エリア --> <!-- 検索結果エリア --> <!-- 見出し --> <div class="row"> <div class="col span_24"> <h2 title=""><?php echo $INDEX_TITLE; ?></h2> </div> </div><!-- row --> <!-- /見出し --> <?php if ($HITS > 0){ ?> <!-- 検索結果ありの場合のみ表示 --> <!-- 並び順選択 --> <div class="row"> <div class="col span_24"> <!-- 現在選択されているものは、spanにして sort_selected を付加 --> <div class="sort"> 並び替え : <?php if ($ORDER == 'DESC'){ ?> | <span class="sort_selected">新しい順</span> | <a href="?order=2&keyword=<?php echo $KEYWORD; ?><?php if (!empty($_GET['manga'])) { echo '&manga=' . $_GET['manga']; } ?>">古い順</a> <?php } else { ?> | <a href="?order=1&keyword=<?php echo $KEYWORD; ?><?php if (!empty($_GET['manga'])) { echo '&manga=' . $_GET['manga']; } ?>">新しい順</a> | <span class="sort_selected">古い順</span> <?php } ?> <span class="span_off">| </span><span class="span_on"><br /></span> <!-- 結果情報 --> <?php echo (($paged - 1) * 10) + 1; ?>件~<?php echo $EPAGE; ?>件 (全<?php echo $HITS; ?>件) </div> </div> </div><!-- row --> <!-- /並び順 --> <!-- /検索結果ありの場合のみ表示 --> <?php } ?> <!-- 結果一覧 --> <div class="row"> <div class="col span_15"> <?php if ($HITS == 0){ ?> <!-- 0件の場合はこちら --> <div class="notfound large"> 商品が見つかりませんでした </div> <!-- /0件の場合はこちら --> <?php }else{ ?> <?php while (have_posts()) : the_post(); //一般とコンビニでどっちが早いか $HATSUBAIBI1 = get_post_meta($post->ID, '発売日(一般販売一次)',true); $HATSUBAIBI2 = get_post_meta($post->ID, '発売日(コンビニ発売時)',true); if (isset($HATSUBAIBI1) && empty($HATSUBAIBI2)){ $DVD = 1; } elseif (isset($HATSUBAIBI2) && empty($HATSUBAIBI1)){ $DVD = 2; } elseif ($HATSUBAIBI1 >= $HATSUBAIBI2) { $DVD = 2; } else { $DVD = 1; } if ($DVD == 1){ $HATSUBAIBI = $HATSUBAIBI1; $KAKAKU = get_post_meta($post->ID, '税抜価格(一般販売一次)',true); } else { $HATSUBAIBI = $HATSUBAIBI2; $KAKAKU = get_post_meta($post->ID, '税抜価格(コンビニ発売時)',true); } if (!empty($KAKAKU)){ $KAKAKU = number_format(round($KAKAKU * 1.00)); }else{ $KAKAKU = '-'; } $WHATSUBAIBI = split("/",$HATSUBAIBI); $HATSUBAIBI = $WHATSUBAIBI[0] . '年' . $WHATSUBAIBI[1] . '月' . $WHATSUBAIBI[2] . '日'; $HATSUBAIBI = str_replace('年0','年',$HATSUBAIBI); $HATSUBAIBI = str_replace('月0','月',$HATSUBAIBI); ?> <!-- 1件以上の場合はこちら --> <!-- 結果商品一つ分 --> <hr> <div class="row"> <div class="center colf span_24"> <dl class="line"> <dd class="span2 center"> <!-- ジャケット画像をハーフサイズ(100x141)で表示。タグにサイズ指定はしない --> <!-- リンク先は詳細情報 --> <a href="<?php echo get_permalink($post->ID); ?>"><img src="<?php $IMAGE_URL = get_post_meta($post->ID, 'ジャケット画像URL',true); if (empty($IMAGE_URL)){ $IMAGE_URL = bloginfo('template_url') . '/img/noimage.png'; } echo $IMAGE_URL; ?>" class="uimg2" alt="ジャケット"></a> </dd> <dd class="span8"> <h3><?php echo get_the_title($post->ID); ?></h3> <dl class="line"> <dd class="span2 tag">キャスト</dd> <dd class="span8"><?php echo get_post_meta($post->ID, '出演者',true); ?></dd> </dl> <dl class="line"> <dd class="span2 tag">発売日</dd> <dd class="span8"><?php echo $HATSUBAIBI; ?></dd> </dl> <dl class="line"> <dd class="span2 tag">価格(税抜)</dd> <dd class="span8 bold red"><?php echo $KAKAKU; ?>円</dd> </dl> <p class="clearLeft" /> <br /> <div class="center"> <a href="<?php echo get_permalink($post->ID); ?>" class="result_jump">►作品詳細へ</a> </div> </dd> </dl> <p class="clearLeft" /> </div> </div> <!-- /結果商品一つ分 --> <?php endwhile; ?> <?php } ?> <!-- ページャーエリア --> <hr> <div class="row"> <div class="col span_24"> <div class="page_center bold"> <?php wp_pagenavi(); ?> </div> </div> </div><!-- row --> <!-- /ページャーエリア --> </div><!-- colf span_15 --> <?php //データ取得設定 $args = array( 'post_type' => 'dvd_index_banner', 'meta_key' => '表示順', 'orderby' => 'meta_value', 'order' => 'DESC', 'posts_per_page' => '10' ); //データ取得 query_posts( $args ); ?> <!-- 右カラムのランキング (300px) --> <div class="col span_9 col_ranking"> <!-- 幅300ピクセルまでのバナー --> <?php while (have_posts()) : the_post(); ?> <a href="<?php echo get_post_meta($post->ID, '遷移先URL',true); ?>" target="_blank"><img src="<?php echo get_post_meta($post->ID, 'バナー画像URL',true); ?>" width="280" height="70" class="ranking_banner"></a><br /> <?php endwhile; ?> <br /> </div><!-- colf span_9 col_ranking --> </div><!-- row --> <!-- /結果一覧 --> </div> <?php $page_type = 'product_manga'; get_footer(); ?>
###試したこと
アーカイブページではなく固定ページを一覧ページにしているので、アーカイブページ(archive-manga.php)を作って結果一覧が表示されるようにしたのですが、キーワード検索や並び替え(古い順、新しい順)の機能を設置できませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
現在の表示は
<?php if ($HITS == 0){ ?> <!-- 0件の場合はこちら --> <div class="notfound large"> 商品が見つかりませんでした </div> <!-- /0件の場合はこちら --> <?php }else{ ?>
これが適応されて「商品が見つかりませんでした」になる。
商品は50件ほど登録している。