Имя автора на главной странице не отображается - PullRequest
0 голосов
/ 17 апреля 2020

На моей главной странице есть посты с именем автора. Или хорошо, должен. Однако на самом деле ничего не появляется, и я не уверен, почему они не отображаются. На моем sidebar.php они появляются. Я пытался увидеть, действительно ли что-то появлялось и не скрывалось CSS, однако в ВСЕХ ничего не появляется из get_the_author() на первой странице

Вот код моей главной страницы:

$result = wp_get_recent_posts(array(
    'numberposts' => 1,
    'category' => '',
    'post_status' => 'publish',
));

foreach( $result as $p ){
    ?>
    <!-- The card itself-->
    <div class="card cardcustom">
        <!-- The image -->
        <a href="<?php echo get_permalink($p['ID']) ?>" class="stretched-link"><img class="card-img tinted" src="<?php echo get_the_post_thumbnail_url($p['ID'], array(1438, 500)); ?>" style="height: 500px; object-fit: cover; border-radius: 0px;"/></a>
        <!-- Text over the image -->
        <div class="card-img-overlay card-content">
            <p href="#" class="card-text the-badge badge badge-primary"><?php
            foreach(get_the_category($p['ID']) as $category) {
                echo $category->name . ' ';
            }
            ?></p><br>
            <p class="posttitle card-text" style="font-weight: 600; font-size: 16px;">
            <?php echo $p['post_title']?></p><br />

            <?php
            $authorname = get_the_author();

            echo '<p class="authortext card-text">From ' . '<strong class="colorauthor">' . $authorname . '</strong>' . '</p>';
            ?>
        </div>
    </div>
    <?php
}
?>

А вот код на моей боковой панели:

$result = wp_get_recent_posts(array(
    'numberposts' => 8,
    'category' => '',
    'post_status' => 'publish',
));

foreach( $result as $p ){
    ?>
    <!-- The card itself-->
    <div class="card cardcustom">
        <!-- The image -->
        <a href="<?php echo get_permalink($p['ID']) ?>" class="stretched-link"><img class="card-img tinted" src="<?php echo get_the_post_thumbnail_url($p['ID'], array(440, 240)); ?>" style="border-radius: 0px;"/></a>
        <!-- Text over the image -->
        <div class="card-img-overlay card-content">
            <p href="#" class="card-text the-badge badge badge-primary" style="border-radius: 0px;"><?php
            foreach(get_the_category($p['ID']) as $category) {
                echo $category->name . ' ';
            }
            ?></p><br>
            <p class="posttitle card-text" style="font-weight: 600; font-size: 16px;">
            <?php echo $p['post_title']?></p><br />

            <?php
            $authorname = get_the_author();

            echo '<p class="authortext card-text">From ' . '<strong class="colorauthor">' . $authorname . '</strong>' . '</p>';

            ?>
        </div>
    </div>
<?php
}
?>

Они почти идентичны, но по какой-то причине они отказываются отображаться на главной странице. Вы можете видеть, что я имею в виду на скриншотах ниже:

ГЛАВНАЯ СТРАНИЦА: https://gyazo.com/947f49090fd90a4068725a3968e1e205

Боковая панель на другой странице: https://gyazo.com/b9325be19f388dc2d64ae2fe502e3ba4

1 Ответ

0 голосов
/ 17 апреля 2020

get_the_author() использует глобальный $authordata.
И wp_get_recent_posts() не изменяет основной запрос (потому что он использует get_posts() под капотом).

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

Я бы посоветовал вам получить имя автора на get_the_author_meta('display_name', $p->post_author); (замените get_the_author_meta на the_author_meta для простого отображения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...