0

如何检测函数中当前帖子的 post_format 以启动特定的帖子脚本?

if (has_post_format( 'gallery' )){
    echo 'testing 123';
}

我在我的functions.php中尝试过,在设置为画廊的帖子上,没有任何反应。如果我将 echo 行放在 if 之外,它会显示在每一页的顶部(如预期的那样),为什么 has_post_format 不起作用?

4

1 回答 1

0

如果您没有提供作为第二个参数的 POST_ID,has_post_format() 只会在循环内工作。如果您不在循环内,则必须发送 post_id。

由于您是从functions.php 执行此操作,因此您需要以某种方式检索postID。在这种情况下,我们可以根据 URL 进行操作。所以,

$url = explode('?', 'http://'.$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
$postID = url_to_postid($url[0]);

现在你可以像这样进行比较

has_post_format('gallery', $postID) { /** do your thing **/ }
于 2013-02-22T21:23:40.043 回答