在unctions.php文件adminside中使用POST ID

时间:2021-04-21 作者:Jop

对于函数,我需要函数中的post ID。php文件。如果编辑页处于活动状态,我必须具有ID。

到目前为止我所做的

<?php
//method 1
global $post;
my_function($post->ID);

//method 2
my_function($post_id);

//method 3
my_function(get_queried_object_id());
?>
如果我回显$post->;ID或$post\\u ID或get\\u queryed\\u object\\u ID()它们不提供任何内容/为空

谁能帮我?

1 个回复
最合适的回答,由SO网友:chris_blues 整理而成

这取决于调用这些函数的位置。这就是将var输入函数的点。

首先,移除global $post 从您的功能。php!在那里没有任何意义!在函数中。php您声明函数,而不是调用它们!

我假设您在某个模板中调用函数。因此,功能。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);
}
也可以使用global关键字,使$post变量在函数中可用:

function myFunction() {
    global $post;
    // now you can use $post from the global scope

    do_something($post->ID);
}
因此,您可以在全球范围内使用$postglobal 关键字inside 函数(第二个示例),或者您可以将$post变量作为函数参数传递(第一个示例)。两者都有各自的优点和缺点,例如,如果将其作为参数传递,PHP将复制$post对象以供在函数中使用,而使用global则使用原始对象。我建议阅读PHP范围。:)

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

<?php myFunction($post); ?>

<?php myFunction(); ?>
取决于您决定的版本。无论如何,您可能需要在\\u循环中执行此操作!