WordPress Meta Query ACF Repeater Поле Post Объект - не работает - PullRequest
0 голосов
/ 17 декабря 2018

У меня есть 3 пользовательских типа записей на нашем сайте WP, книги, аудиокниги и авторы.

На странице автора я хочу показать похожие книги / аудиокниги этого автора.

Вкл.на странице книги / аудиокниги имеется поле повторителя, позволяющее пользователю выбрать одного или нескольких авторов в качестве объектов публикации (чтобы их можно было выбрать из CPT).

Поле повторителя = 'author_repeater'.

Подполе = 'author'.

Приведенный ниже код - мой попытанный мета-запрос, но, похоже, он не работает.Я подозреваю, что это потому, что я не обращаюсь к объекту post правильно (не уверен, что это вообще возможно).

Есть мысли?

<?php

    $current_author = get_the_title();

    function my_posts_where( $where ) {

        $where = str_replace("meta_key = 'author_repeater_$", "meta_key LIKE 'author_repeater_$", $where);

        return $where;
    }

add_filter('posts_where', 'my_posts_where');


    $args = array(
                    'post_type' => 'books', //array('books','audiobooks')
                    'post_status' => 'publish',
                    'posts_per_page' => 40,
                    'meta_query' => array(
                        array(
                            'key' => 'author_repeater_$_author',
                            'compare' => 'LIKE',
                            'value' => $current_author
                        )
                    )                       
    );

$books_by_author = new WP_Query( $args );

if ( $books_by_author->have_posts() ): while ( $books_by_author->have_posts() ): $books_by_author->the_post();

?>

<div class="card">
        <div class="white_frame">
            <h4 class="card__title"><?php the_title(); ?></h4>
            <a href="<?php the_permalink(); ?>">
                <?php the_post_thumbnail(array('class' => 'card__img img')); ?>
            </a>
            <a href="<?php the_permalink(); ?>">
                <div class="card__btn">View title</div>
            </a>
        </div>
    </div>

<?php
endwhile;
endif;
?>
...