然后在$ wpdb-> prepare中使用的情况

时间:2019-01-03 20:54:27

标签: plugins woocommerce

这些代码来自woo Advantage搜索插件。 我真的很混淆这部分的代码

我在Google上找到其他情况下的情况

当大小写为“ title”时,输出为: $ relevance_array ['title'] [] = $ wpdb-> prepare(“ 260 * count); $ relevance_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;
						
						

                }

            }

0 个答案:

没有答案