Запрос на поле повторителя ACF - PullRequest
0 голосов
/ 26 апреля 2018

Я хотел бы запросить поле повторителя ACF. У меня есть поле повторителя с именем Библиотека (в СРТ с именем Книга ), и в этом повторителе у меня есть поле отношения с именем Библиотека (которое подключено на другой пользовательский тип записи под названием Библиотека ). Именно это поле я бы хотел запросить *.

Я надеюсь восстановить, благодаря уникальному значению, данному пользователем (выбранному благодаря выбору), все книги, относящиеся к этой Библиотеке .

Пример : выбрана «Библиотека 1». Возвращение: «Гарри Поттер 1» и «Гарри Поттер 2».

Испытания (не работают)

function my_posts_where( $where ) {

$where = str_replace("meta_key = 'library_$", "meta_key LIKE 'library_%", $where);
return $where; } add_filter('posts_where', 'my_posts_where');
$library= $_GET['library'];

$v_args = array(
        'post_type'     =>  'book', 
        'meta_query'    =>  array(
                                array(
                                    'key'     => 'library_$_library',
                                    'compare' => '=', 
                                    'value'   => $library, 
                                ),
                            )
    ); $Query = new WP_Query($v_args);

    if($Query->have_posts()) :
        while($Query->have_posts()) : $Query->the_post();
            ...
        endwhile;

    else : 
        ...
    endif;

А это

    $library= $_GET['library'];

    $v_args = array(
        'post_type'     =>  'book', 
        'meta_query'    =>  array(
                                array(
                                    'key'     => 'library',
                                    'value'   => $library,
                                    'compare' => 'LIKE', 
                                ),
                            )
    );

$Query = new WP_Query($v_args); 

Я искал в Интернете, я не смог решить свою проблему ...

Большое спасибо.

- *: у меня также есть поле повторителя, называемое Tags , и в нем поле таксономии относительно тегов. Я хотел бы показать все книги, которые имеют теги.

1 Ответ

0 голосов
/ 04 февраля 2019

Это немного поздно, но в случае, если это поможет кому-то еще, это работает для меня:

//Since the changed behaviour of esc_sql() in WordPress 4.8.3, 
//cannot use the % character as a placeholder, hence need to alter 'where' close:
function my_posts_where( $where ) {
    $where = str_replace("meta_key = 'library_$", "meta_key LIKE 'library_%", $where);
    return $where;
}
add_filter('posts_where', 'my_posts_where');

$library_id = $_GET['library']; //get querystr var

$args = array(
     'post_type'      => 'book',
     'posts_per_page' => -1,
     'meta_query'     => array(
          array(
               'key' => 'library_$_library', // our repeater field post object
               'value' => '"'. $library_id .'"', //matches exactly "123", not just 123 - prevents a match for "1234"
               'compare' => 'LIKE'
          )
     )
);
$query = new WP_Query($args);

if ($query->have_posts()): 
    while ($query->have_posts()) : $query->the_post();
        echo $post->post_title.'<br>';
    endwhile; 
endif;

wp_reset_query();
...