いろいろ調べていまして
原因がわかりました
functions.phpに「カステムフィールドを検索対象にする」コードをいれていたのですが、それを別の内容に書き換えたら実装が可能になりました
お手数おかけしました
ありがとうございました
//カスタムフィールド を検索対象に
function custom_search($search, $wp_query) {
global $wpdb;
if (!$wp_query->is_search)
return $search;
if (!isset($wp_query->query_vars))
return $search;
$search_words = explode(' ', isset($wp_query->query_vars['s']) ? $wp_query->query_vars['s'] : '');
if ( count($search_words) > 0 ) {
$search = '';
$search .= "AND post_type = 'post'";
foreach ( $search_words as $word ) {
if ( !empty($word) ) {
$search_word = '%' . esc_sql( $word ) . '%';
$search .= " AND (
{$wpdb->posts}.post_title LIKE '{$search_word}'
OR {$wpdb->posts}.post_content LIKE '{$search_word}'
OR {$wpdb->posts}.ID IN (
SELECT distinct post_id
FROM {$wpdb->postmeta}
WHERE meta_value LIKE '{$search_word}'
)
) ";
}
}
}
return $search;
}
add_filter('posts_search','custom_search', 10, 2);
//カスタムフィールド の並び順
add_action( 'pre_get_posts', 'custom_field_sort_315919' );
function custom_field_sort_315919 ($query) {
if ( is_admin() || ! $query->is_main_query() ){
return;
}
if ( $query->is_search() ) {
$query->set('meta_key', 'カスタムフィールドの項目名');
$query->set('orderby', 'meta_value_num');
$query->set('order', 'DESC');
return $query;
}
}