function some_function() {
$template_options = get_post_meta(get_the_ID(), \'the_s_t_l_id\', true);
if (\'layout_7\' === $template_options || \'layout_8\' === $template_options || \'layout_9\' === $template_options){
echo \'displaynone\';
}
}
类别→
.displaynone {display:none;}
但当我调用函数时,它在这里不起作用→
<aside class="sidebar <?php some_function(); ?>">
然而,如果我在其他地方调用这个函数,并且如果逻辑为true,那么它会打印预期的类。
那么,它不在理想的地方工作的原因是什么呢?
最合适的回答,由SO网友:LumberHack 整理而成
这是因为您的函数只能在WordPress循环中工作,如get_the_id()
. 这将在模板文件中的WP循环内返回正确的值,但在其他位置调用时不会返回正确的值,并且检查失败。
有关WordPress循环的更多信息,请参见此
https://codex.wordpress.org/The_Loop
当超出循环时,您可以使用全局
$post
对象以获取如下id
global $post
$id = $post->ID;
或者你可以试试这个
$id = get_queried_object_id();