как бывает, когда потом использовать в $ wpdb-> prepare - PullRequest
0 голосов
/ 03 января 2019

Этот код взят из поискового плагина Woo Advantage.Я действительно путаю с кодом этой части

Я нашел случай, когда еще в Google,

, когда case 'title', вывод будет: $ релевантность_array ['title'] [] = $wpdb-> prepare ("260 * count); $ релевантность_array ['title'] [] = $ wpdb-> prepare (" 46 * count);

Я не понимаю, для чего это.

$search_in_arr = array('title','sku','tag');
$search_term = 'pu2';
$like =  '%pu2%';
$relevance_title        = 260;
$relevance_content      = 47;
$relevance_title_like   = 46;
$relevance_content_like = 38; 

foreach ( $search_in_arr as $search_in_term ) {						

                switch ( $search_in_term ) {

                    case 'title':
                        $relevance_array['title'][] = $wpdb->prepare( "( case when ( term_source = 'title' AND term = '%s' ) then {$relevance_title} * count else 0 end )", $search_term );
                        $relevance_array['title'][] = $wpdb->prepare( "( case when ( term_source = 'title' AND term LIKE %s ) then {$relevance_title_like} * count else 0 end )", $like );
                        break;
						
						
                    case 'content':
                        $relevance_array['content'][] = $wpdb->prepare( "( case when ( term_source = 'content' AND term = '%s' ) then {$relevance_content} * count else 0 end )", $search_term );
                        $relevance_array['content'][] = $wpdb->prepare( "( case when ( term_source = 'content' AND term LIKE %s ) then {$relevance_content_like} * count else 0 end )", $like );
                        break;

                    case 'excerpt':
                        $relevance_array['content'][] = $wpdb->prepare( "( case when ( term_source = 'excerpt' AND term = '%s' ) then {$relevance_content} * count else 0 end )", $search_term );
                        $relevance_array['content'][] = $wpdb->prepare( "( case when ( term_source = 'excerpt' AND term LIKE %s ) then {$relevance_content_like} * count else 0 end )", $like );
                        break;

                    case 'category':
                        $relevance_array['category'][] = $wpdb->prepare( "( case when ( term_source = 'category' AND term = '%s' ) then 35 else 0 end )", $search_term );
                        $relevance_array['category'][] = $wpdb->prepare( "( case when ( term_source = 'category' AND term LIKE %s ) then 5 else 0 end )", $like );
                        break;

                    case 'tag':
                        $relevance_array['tag'][] = $wpdb->prepare( "( case when ( term_source = 'tag' AND term = '%s' ) then 35 else 0 end )", $search_term );
                        $relevance_array['tag'][] = $wpdb->prepare( "( case when ( term_source = 'tag' AND term LIKE %s ) then 5 else 0 end )", $like );
                        break;

                    case 'sku':
                        $relevance_array['sku'][] = $wpdb->prepare( "( case when ( term_source = 'sku' AND term = '%s' ) then 300 else 0 end )", $search_term );
                        $relevance_array['sku'][] = $wpdb->prepare( "( case when ( term_source = 'sku' AND term LIKE %s ) then 50 else 0 end )", $like );
                        break;
						
						

                }

            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...