Привет, я пытаюсь исправить функцию поиска друга, который использует собственную тему на WordPress. Поэтому я работаю над этими функциями:
function mb_search_join($join) {
global $pagenow, $wp_query, $wpdb;
if(is_admin() && $pagenow=='edit.php' &&
($_REQUEST['post_type']=='stelle' || $_REQUEST['post_type']=='praxis' || $_REQUEST['post_type']=='videos') &&
!empty($wp_query->query_vars['s'])) {
$join .= "LEFT JOIN $wpdb->postmeta mbmeta ON $wpdb->posts.ID = $wpdb->postmeta.post_id ";
}
return $join;
}
function mb_search_where( $where ){
global $pagenow, $wpdb;
if(is_admin() && $pagenow=='edit.php'
&& ($_REQUEST['post_type']=='stelle' || $_REQUEST['post_type']=='praxis' || $_REQUEST['post_type']=='videos')
&& (isset($_GET['s']) && $_GET['s'] != '')) {
if($_REQUEST['post_type']=='stelle') :
$where = preg_replace("/\(\s*".$wpdb->posts.".post_title\s+LIKE\s*(\'[^\']+\')\s*\)/",
"(".$wpdb->posts.".post_title LIKE $1)
OR (mbmeta.meta_key='wpcf-jobtyp' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-position' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-top-job' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-referenznummer' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-eintrittsdatum' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-bemerkung' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-zusatzqualifikation' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-name' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-geschlecht' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-kontaktdaten' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-email-adresse' AND mbmeta.meta_value LIKE $1)
OR (mbmeta.meta_key='wpcf-honorarvereinbarung' AND mbmeta.meta_value LIKE $1)
", $where );
// echo $where;
endif;
...
}
В настоящее время поиск никогда не дает никаких результатов. Так что я сделал эхо $, где посмотреть, что внешний вид запроса, как и это результат для поиска ввода «1051910519»:
post_title LIKE '{efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca}1051910519{efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca}') OR (mbmeta.meta_key='wpcf-jobtyp' AND mbmeta.meta_value LIKE
'{efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca}1051910519{efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca}') OR (mbmeta.meta_key='wpcf-position' AND mbmeta.meta_value LIKE
'{efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca}1051910519{efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca}') OR (mbmeta.meta_key='wpcf-top-job' AND mbmeta.meta_value ....
Где «efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca} 1051910519 {efe1f890da2e4727abec314a3544bec82f712bf65ccd04e66d539f09873d27ca» взялось? Что происходит, почему это не работает. Есть идеи?