Php 我希望显示相同标签的帖子,而不是随机显示帖子

Php 我希望显示相同标签的帖子,而不是随机显示帖子,php,html,wordpress,Php,Html,Wordpress,我使用的是WordPress版本5.3.2,PHP7.4。让我向你详细解释一下。我上面发布的原始代码在我的function.php中。它利用这个短代码“[random_post]”在我在主题中插入短代码的任何地方显示随机文章标题 在我自己的例子中,我用另一个函数在我的WordPress中的每篇文章的第二段后面插入了快捷码,它就起作用了 但是我的问题是,我不想显示随机的文章,我想让它通过标签显示与原始文章相关的文章。如果没有,则应为空 function sc_random_post($atts,

我使用的是WordPress版本5.3.2,PHP7.4。让我向你详细解释一下。我上面发布的原始代码在我的function.php中。它利用这个短代码“[random_post]”在我在主题中插入短代码的任何地方显示随机文章标题

在我自己的例子中,我用另一个函数在我的WordPress中的每篇文章的第二段后面插入了快捷码,它就起作用了

但是我的问题是,我不想显示随机的文章,我想让它通过标签显示与原始文章相关的文章。如果没有,则应为空

function sc_random_post($atts, $content = null){
    $html = '';
    $posts = get_posts('orderby=rand&numberposts=1');
    foreach($posts as $single_post){
        $html .= '<a href="' . get_the_permalink($single_post) . '" title="' . get_the_title($single_post) . '">' . get_the_title($single_post) . '</a>';
    }
    return $html;
}

add_shortcode('random_post', 'sc_random_post');
函数sc\u random\u post($atts,$content=null){
$html='';
$posts=get_posts('orderby=rand&numberposts=1');
foreach($posts作为$single_post){
$html.='';
}
返回$html;
}
添加快捷码(“随机发布”、“随机发布”);

所以我相信您要查找的仍然是get posts,但是您希望在查询中使用tag参数

例如:

function getPostsByTag($tagSlug) {
    $args = ['tag' => $tagSlug];
    return get_post($args);
}

$cookingPosts = getPostsByTag('cooking');

然而,在将来,通常最好更具体一点,即在特定的框架和版本中寻找问题的解决方案。例如,get_post可能只是代码库的一个内部函数。我假设这是一个来自标签的wordpress问题,但我不确定您使用的是哪种特定版本的WP或php。

我认为您应该重写这个问题,以便我们能够真正理解您的意思并帮助您。@ValentinSoveaux我认为现在有点全面,对吗?你指的是网络抓取吗?@Caseyharls没有任何答案。。。。我使用的是WordPress版本5.3.2,PHP7.4。让我向你详细解释一下。我上面发布的原始代码在我的function.php中。它利用这个短代码“[random_post]”在我在主题中插入短代码的任何地方显示随机文章标题。在我自己的博客中,我在我的WordPress中的每篇文章的第二段之后插入了短代码。所以我的问题是,我不想随机显示文章,而是希望它通过标签显示与原始文章相关的文章。如果没有,它不应该显示任何内容。是的,如果你可以访问原始的posts标签,我的答案应该可以帮助你做到这一点。并将标记添加到原始函数中的get_posts调用中。你的例子的第3行。但是,如果您的WordPress版本不允许将关联数组作为第一个参数传递,而需要查询字符串,则可能需要交换语法。如果是这种情况,则会产生类似get_posts('orderby=rand&numberposts=1&tag='。$tag)的结果