管理画面の一覧よりカスタムフィールドの値で検索する
function.phpに下記を追加する。
// 管理画面の検索範囲を変更する
function add_subtitle_filter(){
global $post_type;
//表示するのは投稿一覧画面のみ
if ( $post_type == 'post' ) {
echo '<input type="text" name="subtitle" value="'. get_query_var('subtitle'). '" placeholder="subtitle" />';
}
};
add_action('restrict_manage_posts', 'add_subtitle_filter');
function add_subtitle($vars) {
$vars[] = 'subtitle';
return $vars;
}
add_filter('query_vars', 'add_subtitle');
function posts_where_subtitle($where) {
global $wpdb;
//管理画面でのみ実行
if(is_admin()) {
$value = get_query_var('subtitle');
if(!empty($value)) {
//検索条件にカスタムフィールド「subtitle」の値を追加
$where .= $wpdb->prepare(" AND EXISTS ( SELECT * FROM {$wpdb->postmeta} as m
WHERE m.post_id = {$wpdb->posts}.ID AND m.meta_key = 'subtitle' AND m.meta_value like %s )",
"%{$value}%" );
}
}
return $where;
};
add_filter('posts_where', 'posts_where_subtitle');
参考サイト
-
前の記事
カスタム投稿タイプのラベル名を表示(カスタム投稿タイプの一覧タイトル) 2017.03.09
-
次の記事
カスタムフィールドの関連で関連付く記事を取得する 2017.03.14