Sim_nuipというカスタムフィールドを持つusr_jardinという投稿タイプがあります。投稿のタイトルとカスタムフィールドでも検索が機能するようにしたいです。私はこれを試してみますが、私にはうまくいきません。
function searchfilter($query)
{
$custom_fields = array("_post_title", "nuip");
$searchterm = $query->query_vars['s'];
$query->query_vars['s']="";
if($searchterm != "")
{
$meta_query = array('relation' => 'OR');
foreach($custom_fields as $cf)
{
array_Push($meta_query, array('key'=> $cf,'value'=> $searchterm,'compare'=> 'LIKE'));
}
$query->set("meta_query", $meta_query);
}
if($query->is_search)
{
$query->set('post_type', array('post', 'usr_jardin'))
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
add_action('save_post','add_title_custom_field');
function add_title_custom_field($postid){
update_post_meta($postid, "_post_title", $_POST["post_title"]);
}
pre_get_posts
はアクションであり、フィルタではありません。これを変更してください。
add_filter('pre_get_posts','searchfilter');
これに:
add_action('pre_get_posts','searchfilter');
$query
を返す必要もありません。
Pre_get_postsのドキュメントを参照してください。 http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts