对于函数,我需要functions.php文件中的post ID。如果编辑页面是活动的,我必须有ID。
到目前为止我尝试过的
ID);
//method 2
my_function($post_id);
//method 3
my_function(get_queried_object_id());
?>如果我回显$post->ID或$post_id或get_queried_object_id(),它们什么也不给/空
有谁能帮帮我呢?
发布于 2021-04-22 13:53:58
这取决于调用这些函数的位置。这就是将var输入函数的关键所在。
首先,从您的global $post中删除functions.php!在那里没什么意义!在functions.php中声明函数,而不是调用它们!
我想,您可以在某个模板中调用您的函数。所以functions.php应该是这样的:
function myfunction($post) {
// $post is now a copy of the $post object, it needs to be passed in the call. See below!
do_something($post->ID);
}或者可以使用全局关键字,使函数中的$post变量可用:
function myFunction() {
global $post;
// now you can use $post from the global scope
do_something($post->ID);
}因此,您可以全局使用$post,在函数中使用global关键字<#>(第二个示例),也可以将$post变量作为函数参数传递(第一个示例)。两者各有优缺点,例如,如果您将其作为参数传递,则PHP会复制$post对象以供函数内部使用,而使用全局时则使用原始对象。我建议阅读PHP作用域。:)
现在您有了正确的函数声明--您已经准备好调用它了!在您的模板中,或在您所在的任何地方,请执行以下操作:
或
取决于您决定的版本。在任何情况下,您可能都需要在the_loop中这样做!
https://wordpress.stackexchange.com/questions/386983
复制相似问题