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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

Q&A

1回答

282閲覧

WordPressの検索結果でカスタムフィールドの項目を制限したい

natsu69

総合スコア15

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

0グッド

0クリップ

投稿2018/02/10 07:03

PHPは初心者です。
WordPressの検索結果で表示されるカスタムフィールドの項目を検索ページでチェックボックスにより表示を指定したいのですが全くわかりません。
お分かりの方教えてください。

searchform.php

<div id="search"> <form method="get" action="<?php bloginfo( 'url' ); ?>"> <p>検索</p> <input name="s" id="s" type="text" /> <?php wp_dropdown_categories('depth=0&orderby=name&hide_empty=1&show_option_all=カテゴリー選択'); ?> <?php $tags = get_tags(); if ( $tags ) : ?> <select name='tag' id='tag'> <option value="" selected="selected">タグ選択</option> <?php foreach ( $tags as $tag ): ?> <option value="<?php echo esc_html( $tag->slug); ?>"><?php echo esc_html( $tag->name ); ?></option> <?php endforeach; ?> </select> <?php endif; ?> ここにカスタムフィールドの項目をチェックボックスにより選択させたい <input type="checkbox" name="csvtype" value="ct1">ct1 <input type="checkbox" name="csvtype" value="ct2">ct2 <input type="checkbox" name="csvtype" value="ct3">ct3 <input type="checkbox" name="csvtype" value="ct4">ct4 <input id="submit" type="submit" value="検索" /> </form> </div>

search.php

<p><?php the_search_query(); ?>の検索結果 : <?php echo $wp_query->found_posts; ?>件</p> <?php if(have_posts()) : ?> <?php while(have_posts()):the_post() ?> <h1><?php the_title(); ?></h1> <p><?php the_field('ct1'); ?><br /> <?php the_field('ct2'); ?><br /> <?php the_field('ct3'); ?><br /> <?php the_field('ct4'); ?></p> <?php endwhile; ?> <?php else: ?> <?php endif; ?>

検索ページでct1にチェックが入っていなければ、検索結果でct1のカスタムフィールドは表示されないという仕組みにしたいです。
説明不足、雑であればご了承ください。

ご教授よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

以下のような感じで、出し分けをしてみてはいかがでしょうか。

searchform.php(nameに[]を付加して、配列として受け取れるようにする)

HTML

1<input type="checkbox" name="csvtype[]" value="ct1">ct1 2<input type="checkbox" name="csvtype[]" value="ct2">ct2 3<input type="checkbox" name="csvtype[]" value="ct3">ct3 4<input type="checkbox" name="csvtype[]" value="ct4">ct4

search.php($_GETからカスタムフィールド名を取得して、表示)

PHP

1?><pre><?php var_dump($_GET); ?></pre><?php 2 3$csvtypes = $_GET['csvtype']; 4 5foreach($csvtypes as $csvtype) 6{ 7 ?><pre><?php var_dump($csvtype); ?></pre><?php 8 the_field($csvtype); 9}

投稿2018/02/13 13:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問