質問編集履歴

3 文法の修正

netonet

netonet score 8

2016/01/26 18:37  投稿

wpでのラジオボタンなどでの絞り込み検索の方法
PHPを利用して、ラジオボタン・チェックボックスの絞り込み検索を実現しようと思っていますが、上手く働いてくれません。
現在利用している物は、wordpressとテンプレート賢威です。
wordpressを利用しています。
エラーメッセージとしては、ラジオボタンで検索するとサイト内でのnothing found forがタイトルで出てきます。
プラグインとしてAll in One SEOを利用しているので、それによると404ページという事になります。
URLもhttp://○○○.com/<?st=△△などと出てきます。
通常は<の部分は=になると思うのですが。
ラジオボタンの検索はカスタムフィールドを利用しています。
プラグインは「Custom Field Template」になります。
通常のキーワード検索ではエラーは発生せず、キーワード通りの検索画面が出てきます。
URLもhttp://○○○.com/=?s=△△と綺麗に出てきます。
page.php
固定ページ page.php
```
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
   <input type="hidden" name="s" id="s" placeholder="検索" />
<div class="shinsa-style">
<div>審査時間(最短)</div>
<ul>
<li><label for="shinsa-1"><input id="shinsa-1" type="radio" name="st[]" value="st1" checked="checked" >指定なし</label></li>
<li><label for="shinsa-2"><input id="shinsa-2" type="radio" name="st[]" value="st2">1時間</label></li>
<li><label for="shinsa-3"><input id="shinsa-3" type="radio" name="st[]" value="st3">当日中</label></li>
<li><label for="shinsa-4"><input id="shinsa-4" type="radio" name="st[]" value="st4">翌日以降</label></li>
<li><input id="shinsa-1" type="radio" name="st" value="st1" checked="checked" ><label for="shinsa-1">指定なし</label></li>
<li><input id="shinsa-2" type="radio" name="st" value="st2"><label for="shinsa-2">1時間以内</label></li>
<li><input id="shinsa-3" type="radio" name="st" value="st3"><label for="shinsa-3">当日中</label></li>
<li><input id="shinsa-4" type="radio" name="st" value="st4"><label for="shinsa-4">翌日以降</label></li>
</ul>
</div>
<input type="submit" value="検索" />
</form>
```
search.php
検索結果ページ search.php
```
<!--▽メイン&サブ-->
<div id="main-and-sub">
<!--▽メインコンテンツ-->
<div id="main-contents">
<?php
$s = $_GET['s'];
$st = array('st1','st2','st3','st4');
$st = $_GET['st'];
 
//meta_query用
if($st){
   $metaquerysp[] = array(
           'key'=>'st',
           'value'=> $st,
           'post_type'=>'page',
           );
}
?>
<?php if($st){ ?>カスタムフィールド:<?php echo $st; } ?>
<?php
query_posts( array(
   'meta_query' => $metaquerysp,
   's' => $s,
)
);
?>
<?php if (have_posts()) : ?>
<?php if(is_search()){ ?>
<p class="archive-title"><?php echo sprintf( __('Search Result for %s','keni'), get_search_query()).show_page_number(); ?></p>
<?php } ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h2><?php the_title(); ?></h2>
<div class="contents clearfix">
   <div class="article">
   <!--本文-->
   <?php the_content(); ?>
   <!--/本文-->
   </div>
   <!--/article-->
       
</div>
</div>
<!--/post-->
<?php endwhile;
pager_keni();
else : ?>
<h2>お探しの記事は見つかりませんでした。</h2>
<div class="contents">
<p>検索キーワードを変更し下記より再検索してください。</p><br />
<?php get_search_form(); ?>
</div>
<?php endif; ?>
</div>
<!--△メインコンテンツ-->
 
 
<?php if ((!is_front_page() and the_keni('view_sub') == "y") or (is_front_page() and the_keni('view_top_sub') == "y")) : ?>  
<!--▽サブコンテンツ-->  
<?php include (TEMPLATEPATH . "/sub-contents.php"); ?>  
<!--△サブコンテンツ-->  
<?php endif ?>  
 
</div>  
<!--△メイン&サブ-->  
```
参考にさせていただいているサイトは、http://kotori-blog.com/wordpress/refinement_search/となります。
  • PHP

    31222 questions

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

  • WordPress

    12209 questions

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

2

netonet

netonet score 8

2016/01/26 10:23  投稿

wpでのラジオボタンなどでの絞り込み検索の方法
PHPを利用して、ラジオボタン・チェックボックスの絞り込み検索を実現しようと思っていますが、上手く働いてくれません。
現在利用している物は、wordpressとテンプレート賢威です。
エラーメッセージとしては、ラジオボタンで検索するとサイト内でのnothing found forがタイトルで出てきます。
プラグインとしてAll in One SEOを利用しているので、それによると404ページという事になります。
URLもhttp://○○○.com/<?st%5B%5D=△△などと出てきます。
URLもhttp://○○○.com/<?st=△△などと出てきます。
通常は<の部分は=になると思うのですが。
ラジオボタンの検索はカスタムフィールドを利用しています。
プラグインは「Custom Field Template」になります。
通常のキーワード検索ではエラーは発生せず、キーワード通りの検索画面が出てきます。
URLもhttp://○○○.com/=?s=△△と綺麗に出てきます。
page.php
```
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
   <input type="hidden" name="s" id="s" placeholder="検索" />
<div class="shinsa-style">
<div>審査時間(最短)</div>
<ul>
<li><label for="shinsa-1"><input id="shinsa-1" type="radio" name="st[]" value="指定なし" checked="checked" >指定なし</label></li>
<li><label for="shinsa-2"><input id="shinsa-2" type="radio" name="st[]" value="1時間">1時間</label></li>
<li><label for="shinsa-3"><input id="shinsa-3" type="radio" name="st[]" value="当日中">当日中</label></li>
<li><label for="shinsa-4"><input id="shinsa-4" type="radio" name="st[]" value="翌日移行">当日中</label></li>
<li><label for="shinsa-1"><input id="shinsa-1" type="radio" name="st[]" value="st1" checked="checked" >指定なし</label></li>
<li><label for="shinsa-2"><input id="shinsa-2" type="radio" name="st[]" value="st2">1時間</label></li>
<li><label for="shinsa-3"><input id="shinsa-3" type="radio" name="st[]" value="st3">当日中</label></li>
<li><label for="shinsa-4"><input id="shinsa-4" type="radio" name="st[]" value="st4">翌日以降</label></li>
</ul>
</div>
<input type="submit" value="検索" />
</form>
```
search.php
```
<!--▽メイン&サブ-->
<div id="main-and-sub">
<!--▽メインコンテンツ-->
<div id="main-contents">
<?php
$s = $_GET['s'];
$st = $_GET['st'];
$st = array('st1','st2','st3','st4');
//meta_query用
if($st){
   $metaquerysp[] = array(
           'key'=>'st',
           'value'=> $st,
           'post_type'=>'page',
           );
}
?>
<?php
query_posts( array(
   'meta_query' => $metaquerysp,
   's' => $s,
)
);
?>
<?php if (have_posts()) : ?>
<?php if(is_search()){ ?>
<p class="archive-title"><?php echo sprintf( __('Search Result for %s','keni'), get_search_query()).show_page_number(); ?></p>
<?php } ?>
<?php while (have_posts()) : the_post(); ?>
<div class="post">
<h2><?php the_title(); ?></h2>
<div class="contents clearfix">
   <div class="article">
   <!--本文-->
   <?php the_content(); ?>
   <!--/本文-->
   </div>
   <!--/article-->
       
</div>
</div>
<!--/post-->
<?php endwhile;
pager_keni();
else : ?>
<h2>お探しの記事は見つかりませんでした。</h2>
<div class="contents">
<p>検索キーワードを変更し下記より再検索してください。</p><br />
<?php get_search_form(); ?>
</div>
<?php endif; ?>
</div>
<!--△メインコンテンツ-->
<?php if ((!is_front_page() and the_keni('view_sub') == "y") or (is_front_page() and the_keni('view_top_sub') == "y")) : ?>
<!--▽サブコンテンツ-->
<?php include (TEMPLATEPATH . "/sub-contents.php"); ?>
<!--△サブコンテンツ-->
<?php endif ?>
</div>
<!--△メイン&サブ-->
```
参考にさせていただいているサイトは、http://kotori-blog.com/wordpress/refinement_search/となります。
  • PHP

    31222 questions

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

  • WordPress

    12209 questions

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

1 書式の改善を致しました

netonet

netonet score 8

2016/01/25 18:57  投稿

wpでのラジオボタンなどでの絞り込み検索の方法
今、wordpressでPHPを利用して、金融系の絞り込み検索を実現しようと思っています。
PHPについては初心者で、最近色々調べて少しだけ理解し始めたぐらいです。
ラジオボタンやチャックボックスでの絞り込み検索を最終的に目指しています。
カスタムフィールドのプラグインとして「Custom Field Template」を利用しています。
wpのテンプレートは賢威です。
PHPを利用して、ラジオボタン・チェックボックスの絞り込み検索を実現しようと思っていますが、上手く働いてくれません。
参考にしているサイトは[リンク内容](http://kotori-blog.com/wordpress/refinement_search/)となっており、殆どその通り作っているつもりですが、ラジオボタンでの検索が上手く出来ません。
現在利用している物は、wordpressとテンプレート賢威です。
エラーメッセージとしては、ラジオボタンで検索するとサイト内でのnothing found forがタイトルで出てきます。
プラグインとしてAll in One SEOを利用しているので、それによると404ページという事になります。
URLもhttp://○○○.com/<?st%5B%5D=△△などと出てきます。
通常は<の部分は=になると思うのですが。
検索対象ページは固定ページとしています。
ラジオボタンの検索はカスタムフィールドを利用しています。
プラグインは「Custom Field Template」になります。
通常のキーワード検索ではエラーは発生せず、キーワード通りの検索画面が出てきます。
URLもhttp://○○○.com/=?s=△△と綺麗に出てきます。
page.php
```
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
   <input type="hidden" name="s" id="s" placeholder="検索" />
<div class="shinsa-style">
<div>審査時間(最短)</div>
<ul>
<li><label for="shinsa-1"><input id="shinsa-1" type="radio" name="st[]" value="指定なし" checked="checked" >指定なし</label></li>
<li><label for="shinsa-2"><input id="shinsa-2" type="radio" name="st[]" value="30分">30分</label></li>
<li><label for="shinsa-3"><input id="shinsa-3" type="radio" name="st[]" value="1時間以内">1時間以内</label></li>
<li><label for="shinsa-4"><input id="shinsa-4" type="radio" name="st[]" value="当日中">当日中</label></li>
<li><label for="shinsa-5"><input id="shinsa-5" type="radio" name="st[]" value="翌日以降">翌日以降</label></li>
<li><label for="shinsa-2"><input id="shinsa-2" type="radio" name="st[]" value="1時間">1時間</label></li>
<li><label for="shinsa-3"><input id="shinsa-3" type="radio" name="st[]" value="当日中">当日中</label></li>
<li><label for="shinsa-4"><input id="shinsa-4" type="radio" name="st[]" value="翌日移行">当日中</label></li>
</ul>
</div>
<input type="submit" value="検索" />
</form>
```
 
search.php
```
<!--main-->  
<div id="main">  
<!--main-in-->  
<div id="main-in">  
<?php  
if (!is_front_page()) {  
if(is_search() || (is_home()) or get_query_var('paged') > 1) { ?>  
<!--▼パン屑ナビ-->  
<div id="breadcrumbs">  
<ol>  
<?php the_breadcrumbs(); ?>  
</ol>  
</div>  
<!--▲パン屑ナビ-->  
<?php }  
}  
?>  
 
 
<!--▽メイン&サブ-->
<div id="main-and-sub">
<!--▽メインコンテンツ-->
<div id="main-contents">
<?php
$s = $_GET['s'];
$st = $_GET['st'];
//meta_query用
if($st){
   $metaquerysp[] = array(
           'key'=>'st',
           'value'=> $st,
           'post_type'=>'page',
           );
}
?>
<?php
query_posts( array(
   'meta_query' => $metaquerysp,
   's' => $s,
)
);
?>
<?php if (have_posts()) : ?>
<?php if(is_search()){ ?>  
<p class="archive-title"><?php echo sprintf( __('Search Result for %s','keni'), get_search_query()).show_page_number(); ?></p>  
<?php } ?>  
 
<?php while (have_posts()) : the_post(); ?>  
 
 
<div class="post">  
<h2><?php the_title(); ?></h2>
<div class="contents clearfix">
   <div class="article">
   <!--本文-->
   <?php the_content(); ?>
   <!--/本文-->
   </div>
   <!--/article-->
         
 
</div>  
<?php if(is_search()){ ?>  
<p class="archive-title"><?php echo sprintf( __('Search Result for %s','keni'), get_search_query()).show_page_number(); ?></p>  
<?php } ?>  
 
<?php while (have_posts()) : the_post(); ?>  
</div>
<!--/post-->
<?php endwhile;
pager_keni();
else : ?>
<h2>お探しの記事は見つかりませんでした。</h2>
<div class="contents">
<p>検索キーワードを変更し下記より再検索してください。</p><br />
<?php get_search_form(); ?>
</div>
<?php endif; ?>
</div>
<!--△メインコンテンツ-->
<?php if ((!is_front_page() and the_keni('view_sub') == "y") or (is_front_page() and the_keni('view_top_sub') == "y")) : ?>
<!--▽サブコンテンツ-->
<?php include (TEMPLATEPATH . "/sub-contents.php"); ?>
<!--△サブコンテンツ-->
<?php endif ?>
</div>
<!--△メイン&サブ-->
 
```
これで絞り込み検索をしても、「再検索してください」としか出て来ません。
そこで、キーワード検索をするとそれなりの固定ページは検索で出来ます。
検索したときも少しurlがおかしくなります。
通常検索したら△△△.com/?s=○○となると思うんですが、
ラジオボタンで検索すると△△△.com/<?st=○○と?の前に<が入ってきます。
キーワード検索では<は入ってこないです。
最終的にはラジオボタンで4項目ほど、チェックボックスで1項目に広げて絞り込み検索したいです。
よろしくお願いします。
説明が下手ですみません。
参考にさせていただいているサイトは、http://kotori-blog.com/wordpress/refinement_search/となります。
  • PHP

    31222 questions

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

  • WordPress

    12209 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る