WordPress カスタムフィールドテンプレート 検索メモ(cftsearch)
- 投稿日 : 2012-03-01, 14:00
- 最終更新日時 : 2012-03-19 04:28:47(履歴)
- タグ(WordPress)
- カテゴリ(WordPress)
- 記し人(luvsic)[PDF]
- 閲覧数(2443)
リファレンスが無いらしいので個人的にメモるエントリ
$searchの配列
- searchType
- searchValue
- searchOperator
- searchValueLabel
- searchDefault
- searchClass
- searchSelectLabel
カスタムフィールドの入力フォームに行えるオプション設定
多すぎるので思案中 | |
---|---|
SUBITボタンの独自出力
do_shortcode('[cftsearch format=1 button=false]');
Template Content: #0
管理/投稿画面用のカスタムフィールド設定
[price]
type = text
size = 5
class = number
label = 料金
after = 円
searchType = array('select', 'select');
searchValue = array('0 # 1000 # 2000 # 300', '9999 # 1000 # 2000 # 3000');
searchOperator = array('>=', '<=');
searchValueLabel = array('制限なし # 1000円 # 2000円 # 3000円', '制限なし # 1000円 # 2000円 # 3000円');
[cft] and [cftsearch] Shortcode Format]: #0
カスタムフィールドテンプレートプラグインでの検索用テンプレート
料金 [price][1] - [price][2]
/* カテゴリー4で検索する場合 */
<input type="hidden" name="cftcategory_in[]" value="4">
/* カテゴリー4のみを除外検索する場合 */
<input type="hidden" name="cftcategory_not_in[]" value="4">
/* 並び替えの対象 */
<input type="hidden" name="orderby" value="price">
/* 昇順・降順 */
<input type="hidden" name="order" value="ASC">
/* 投稿タイプ指定 */
<input type="hidden" name="post_type" value="post">
/* 表示数 */
<input type="hidden" name="limit" value="20">
数値でのソート
[price] を、安い順にカスタムフィールドの値をソートして表示するサンプル。 meta_queryで検索条件を指定する
<?php
$cat = get_the_category();
$paged = get_query_var('paged');
$args = array(
'category' => $cat->cat_ID,
'post_type' => 'post',
'paged' => $paged,
'numberposts' => '7',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'price',
'value' => array( $_GET['cftsearch']['price'][1][0], $_GET['cftsearch']['price'][2][0] ),
'type' => 'NUMERIC',
'compare' => 'BETWEEN'
)
),
'orderby' => 'meta_value_num',
'meta_key' => 'price',
'meta_value' => '',
'order' => 'ASC',
'suppress_filters' => 'false'
);
?>
<?php $myposts = get_posts($args); ?>
<?php foreach($myposts as $post) : setup_postdata($post); ?>
<article>
<?php get_template_part( 'content', get_post_format() );?>
</article>
<?php endforeach; ?>
No comments yet