Wordpress шорткод дублирует посты при вызове дважды - PullRequest
0 голосов
/ 02 июля 2018

Я создал шорткод, который должен показывать мне последнее сообщение в определенной категории, вот код

function latest_post($atts = '') {
    $atts = shortcode_atts( array(
        'cat' => '',
    ), $atts );
    $args = array(
       'posts_per_page' => 1,
       'cat' => $atts['cat']
    );

    $content = "";
    $posts = get_posts($args);

    foreach($posts as $post):
       $content = $content."<h2>". apply_filters( 'the_title', $post->post_title) ."</h2>";
       $content = $content."<img src='".get_the_post_thumbnail_url(get_the_ID(),'full')."' />";
       $content = $content."<p class='post-content-custom'>". apply_filters( 'the_content', $post->post_content ) ."</p>";
    endforeach;

    return $content;
}

add_shortcode('latest_post', 'latest_post');

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

Например мне нужно:

[latest_post cat="cars"] [latest_post cat="books"]``[latest_post cat="cars"]

Теперь во второй раз, когда я звоню [latest_post cat="cars"], он должен показать мне latest post - 1, потому что последний пост уже вызван первым шорткодом.

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