首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在functions.php文件管理员端使用post ID

在functions.php文件管理员端使用post ID
EN

WordPress Development用户
提问于 2021-04-21 23:41:34
回答 1查看 858关注 0票数 0

对于函数,我需要functions.php文件中的post ID。如果编辑页面是活动的,我必须有ID。

到目前为止我尝试过的

代码语言:javascript
复制
ID);

//method 2
my_function($post_id);

//method 3
my_function(get_queried_object_id());
?>

如果我回显$post->ID或$post_id或get_queried_object_id(),它们什么也不给/空

有谁能帮帮我呢?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2021-04-22 13:53:58

这取决于调用这些函数的位置。这就是将var输入函数的关键所在。

首先,从您的global $post中删除functions.php!在那里没什么意义!在functions.php中声明函数,而不是调用它们!

我想,您可以在某个模板中调用您的函数。所以functions.php应该是这样的:

代码语言:javascript
复制
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变量可用:

代码语言:javascript
复制
function myFunction() {
    global $post;
    // now you can use $post from the global scope

    do_something($post->ID);
}

因此,您可以全局使用$post,在函数中使用global关键字<#>(第二个示例),也可以将$post变量作为函数参数传递(第一个示例)。两者各有优缺点,例如,如果您将其作为参数传递,则PHP会复制$post对象以供函数内部使用,而使用全局时则使用原始对象。我建议阅读PHP作用域。:)

现在您有了正确的函数声明--您已经准备好调用它了!在您的模板中,或在您所在的任何地方,请执行以下操作:

代码语言:javascript
复制

代码语言:javascript
复制

取决于您决定的版本。在任何情况下,您可能都需要在the_loop中这样做!

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/386983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档