Как я могу заставить функцию have_posts () искать сообщения на всех языках? - PullRequest
0 голосов
/ 11 марта 2020

У нас есть многоязычный сайт с публикациями на разных языках. Как я могу отобразить выдержки из всех постов автора на всех языках, на которых они опубликованы? have_posts () , похоже, использует только язык сайта по умолчанию. Вот что у меня есть у автора: php template:

<?php $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author)); ?>
...

<?php if ( have_posts() ) : ?>
        <?php while ( have_posts() ) : the_post(); ?>                       
            <?php get_template_part( 'content', 'index' ); ?>
        <?php endwhile; ?>
            <?php else : ?>
        <p><i><?php esc_html_e( 'This person has not authored any articles.' ); ?></i></p>
        <?php endif; ?>

var_dump для автора, который публикует только на французском языке, например, возвращает FALSE.

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

    <?php 
                $args = array( 'post_type' => 'post', 'order' => 'DESC', 'author' => $curauth->ID, 'lang' => 'fr', 'post_status' => 'publish');
                $posts = get_posts($args);
                if (!empty($posts)) {
                    foreach($posts as $post => $post_val){ ?>
                        <h1 class="entry-title textcenter-xs"><?php echo $post_val->post_title ?></h1>
                    <?php
                        echo wp_trim_excerpt($post_val->post_content); //This is returning ALL the content, not the excerpt
                    }
                } 
                ?>

Я все еще новичок в php, поэтому любая помощь приветствуется!

...