Получить сообщения от автора сообщения - WordPress - PullRequest
0 голосов
/ 07 февраля 2020

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

У меня есть этот код, но он не работает. Может кто-нибудь подумать, как мне помочь?

<?php 

    $args = array(
    'author'        =>  $post->post_author;
    'type'          => $post_meta['_listing_type'][0] == 'event',
    'order'         =>  'ASC',
    'posts_per_page' => -1
    );

    $eventos = get_posts( $args );

    foreach ( $eventos as $evento ) {
        $output .= '<div>'.$evento.'</div>';
    endforeach;

    if(!empty($eventos)) : ?> 

        <div id="listing-eventosartista" class="listing-section">
            <h3 class="listing-desc-headline margin-top-60 margin-bottom-30"><?php esc_html_e('Eventos del artista','listeo_core'); ?></h3>
                <div class="single-item">
                    <?php echo $output; ?>
                </div>

        </div>
    <?php endif ?>

1 Ответ

0 голосов
/ 07 февраля 2020

У тебя есть пара вещей. В вашем массиве $args есть недопустимая точка с запятой, type должно быть post_type, я также не совсем уверен, что вам нужен этот странный оператор сравнения?

Попробуйте это:

$args = array(
    'author'         => $post->post_author,
    'post_type'      => 'event',
    'order'          => 'ASC',
    'posts_per_page' => -1
);

Также убедитесь, что установлено $post, в зависимости от того, * где вы вызываете это , возможно, не существует созданного / глобального $post объекта.

Это также предполагает, что вы используете фактический post_type с именем event, в противном случае, если вы проверяете обычные записи на наличие мета-поля '_listing_type', вам нужно отбросить аргумент post_type, и вместо этого добавьте аргумент meta_query - обратите внимание, что это очень медленно для больших баз данных, потому что таблица postmeta не индексируется по умолчанию. Также обратите внимание, что meta_query - это массив массивов .

Этот запрос будет выглядеть примерно так:

$args = array(
    'author'         => $post->post_author,
    'order'          => 'ASC',
    'posts_per_page' => -1,
    'meta_query'     => array(
        array(
            'meta_key'   => '_listing_type',
            'meta_value' => 'event'
        )
    )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...