質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

954閲覧

Custom Post Type UIで登録したデータの一覧が表示されなくなった

mitsuki33

総合スコア6

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/12/18 08:36

編集2017/12/18 21:39

###前提・実現したいこと
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"> &nbsp; </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"> &nbsp; </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">&#9658;作品詳細へ</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件ほど登録している。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/12/18 15:32 編集

コードを記載する際はコードブロック(```で囲む)で記載してください。また、表示されなくなる前後で行ったことや質問者様が調査済みの内容についても質問文に追記してください。
退会済みユーザー

退会済みユーザー

2017/12/18 15:37

それから、「CPU UI」とは何かについても記載していただけますか。プラグインか何かでしょうか?
guest

回答1

0

アーカイブページではなく固定ページを一覧ページにしているので、アーカイブページ(archive-manga.php)を作って結果一覧が表示されるようにしたのですが、キーワード検索や並び替え(古い順、新しい順)の機能を設置できませんでした。

元の設計がどのようになっていたのかがわからないため具体的な回答は出来ませんが、固定ページを使用して query_posts を使う設計のものをアーカイブでの表示に切り替えてそのままうまくいくとは思えません。

大幅に変更するのなら元の設計を引き継がず新規で設計しなおすほうが早いかもしれません。

投稿2017/12/22 19:51

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuki33

2017/12/23 08:12

回答ありがとうございます。設計し直す方向で進めたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問