如何检测函数中当前帖子的 post_format 以启动特定的帖子脚本?
if (has_post_format( 'gallery' )){
echo 'testing 123';
}
我在我的functions.php中尝试过,在设置为画廊的帖子上,没有任何反应。如果我将 echo 行放在 if 之外,它会显示在每一页的顶部(如预期的那样),为什么 has_post_format 不起作用?
如果您没有提供作为第二个参数的 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 **/ }