У нас есть многоязычный сайт с публикациями на разных языках. Как я могу отобразить выдержки из всех постов автора на всех языках, на которых они опубликованы? 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, поэтому любая помощь приветствуется!