具有多个元键的Wordpress查询

具有多个元键的Wordpress查询,wordpress,Wordpress,有人能告诉我这个问题出了什么问题吗 if ( isset( $_GET['lokacija'] ) && !empty( $_GET['lokacija'] ) ) { $lokacija = $_GET['lokacija']; } else { $lokacija = ''; } if ( isset( $_GET['tip'] ) && !empty( $_GET['tip'] ) ) { $tip = $_G

有人能告诉我这个问题出了什么问题吗

if ( isset( $_GET['lokacija'] ) && !empty( $_GET['lokacija'] ) ) {
        $lokacija = $_GET['lokacija'];
    } else { $lokacija = ''; }
    if ( isset( $_GET['tip'] ) && !empty( $_GET['tip'] ) ) {
        $tip = $_GET['tip'];
    } else { $tip = ''; }
    if ( isset( $_GET['sobe'] ) && !empty( $_GET['sobe'] ) ) {
        $sobe = $_GET['sobe'];
    } else { $sobe = ''; }

    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

      $args2 = array(
        'posts_per_page' => 10,
        'post_type' => 'nekretnine',
        'paged' => $paged,
            if ($lokacija != '') {
                'meta_query' => array(
                    array (
                        'key' => 'lokacija',
                        'value' => $lokacija.''
                        ),
                )
            } 

        );
    $wp_query = new WP_Query( $args2 );
这个代码给了我一个错误

分析错误:语法错误,意外的T_IF,应为 */第23行的wp content/themes/gs/page-nek-pretraga.php

第23行是以if$lokacija开头的行

我想做的是使用我可以从php get www.blabla./com/page1/?lokacija=foo&tip=foo&sobe=3获得的多个meta_查询

但是,我想要它,前提是$lokacija不是空的。对于其他两个可能的5-6以后的字段也是如此。

您不能在数组中包含if条件。无论您试图用上面的代码实现什么,都可以用下面的代码实现

$args2 = array(
    'posts_per_page' => 10,
    'post_type' => 'nekretnine',
    'paged' => $paged,
);

if ($lokacija != '') {
    $args2['meta_query'] = array(
        array (
                'key' => 'lokacija',
                'value' => $lokacija.''
            ),
    );
} 

要检查多个自定义字段,我们必须加入元表两次。 因此,该表的副本使用不同的临时表名联接

    global $wpdb; $query = " SELECT * FROM {$wpdb--->prefix}posts
INNER JOIN {$wpdb->prefix}postmeta m1
  ON ( {$wpdb->prefix}posts.ID = m1.post_id )
INNER JOIN {$wpdb->prefix}postmeta m2
  ON ( {$wpdb->prefix}posts.ID = m2.post_id )
WHERE
{$wpdb->prefix}posts.post_type = 'post'
AND {$wpdb->prefix}posts.post_status = 'publish'
AND ( m1.meta_key = 'date' AND m1.meta_value > '2010-12-05 00:00:00' )
AND ( m1.meta_key = 'date' AND m1.meta_value < '2010-12-12 00:00:00' ) AND ( m2.meta_key = 'some_other_meta_value' AND m2.meta_value != '' ) GROUP BY {$wpdb->prefix}posts.ID
ORDER BY {$wpdb->prefix}posts.post_date
DESC;
欲了解更多详情,请访问:

)