如何在wordpress functions.php中检测post_format

时间:2013-02-22 21:10:08

标签: php wordpress

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

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

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

1 个答案:

答案 0 :(得分: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 **/ }