【问题标题】:Meta query key with POST OBJECT (ACF) (post_title) in wordpresswordpress 中带有 POST OBJECT (ACF) (post_title) 的元查询键
【发布时间】:2019-04-13 10:43:48
【问题描述】:

我的元查询有很大问题。我想过滤我的帖子,我需要查询以将 post_title 与我的 $_POST 值进行比较。 代码:

function postsFilter(){
$args = array(
    'post_type' => 'posts',
    'meta_query' => array(
        'relation' => 'AND'
    )
);

if( isset($_POST['year']) && $_POST['year'] ) 
$args['meta_query'][] = array(
    'key' => 'year',
    'value' => $_POST['year'],
    'compare' => '='
);
if( isset($_POST['theme']) && $_POST['theme'] ) 
$args['meta_query'][] = array(
    'key' => 'theme',
    'value' => $_POST['theme'],
    'compare' => '='
);

if( isset($_POST['member']) && $_POST['member'] ) 
$args['meta_query'][] = array(
    'key' => 'member_relation',
    'value' => ``.$_POST['member'].``,
    'compare' => 'LIKE'
);


$query = new WP_Query( $args );

echo "<script>
var posts_p = '" . json_encode( $query->query_vars ) . "',
     current_page_p = " . 1 . " ,
     max_page_p = " . $query->max_num_pages . ";
     console.log(current_page_p, max_page_p);
</script>";

if( $query->have_posts() ) :
    while( $query->have_posts() ): $query->the_post();
        get_template_part('template-parts/content', 'posts');
    endwhile;
    if (  $query->max_num_pages > 1 )
        echo '<div class="button-load-more_p btn-load-more text-center mx-auto w-100"><a class="btn btn-primary btn-md btn-with-icon fade-in full-visible load-more"><span>Load more</span></div></a></div>';
    wp_reset_postdata();
else :
    echo 'No publications found';
endif;

die();

}

这里存在问题:

if( isset($_POST['member']) && $_POST['member'] ) 
$args['meta_query'][] = array(
    'key' => 'member_relation',
    'value' => $_POST['member']
    'compare' => 'LIKE'
);

因为我不知道这部分查询怎么写, 成员关系是 Wordpress 中的 POST OBJECT 类型文件,我需要将 $_POST['member'] 与 post_title 值进行比较(也许我错了?)

$member = get_field('member_relation', $post_object->ID); 
$member->post_title;

是否可以编写此查询?请给我任何建议或解决我的问题的示例。

【问题讨论】:

    标签: php wordpress advanced-custom-fields meta-query


    【解决方案1】:

    试试这个,将您的元查询参数与帖子标题 arg 合并。

    if( isset( $_POST['title'] ) && !empty( $_POST['title'] )  ){
                        
                            $args2 =  array( 
                                        's' => '"'.$_POST['title'].'"'
                                        ) ; 
                                        
                            $args = array_merge(  $args, $args2); 
                    } 
    

    【讨论】:

      猜你喜欢
      • 2015-03-02
      • 2021-08-17
      • 2019-04-02
      • 2023-03-09
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      相关资源
      最近更新 更多