定义全局变量的最安全方法


Wordpress - Safest method to define global variables

我不知道"global"这个词是否合适,但我要做的是:定义一个变量,我可以在模板的许多部分使用。

示例:我必须定义一个包含静态页面ID的变量

$page_id = 34

,我必须在不同的模板部分中使用它,如

get_page_link($page_id)

我找到了很多方法(PHP define(), in function.php, global,…),但我问什么是最安全的,在你看来

您可以在wp-config文件中定义它(该文件将在所有主题中访问)或在主题目录的function.php中定义它。

例子: Function.php

global $blog_pageId;
$blog_pageId = 34;

或者创建一个返回id的小函数。

function get_blog_page_id(){
      return "34";
}

我们可以称之为,

 $blog_pageId = get_blog_page_id();

你也可以使用wordpress的默认功能,如

全球wpdb美元;

上面的全局变量$wpdb是在wordpress的所有页面中使用的,所以你也可以创建自己的函数并创建一个全局变量来声明所有的页面或帖子。

如果您使用漂亮的永久链接,get_query_var('page_id')将不起作用。

相反,从全局$wp_query:

获取查询的对象ID
// Since 3.1 - recommended!
$page_object = get_queried_object();
$page_id     = get_queried_object_id();

// "Dirty" pre 3.1
global $wp_query;
$page_object = $wp_query->get_queried_object();
$page_id     = $wp_query->get_queried_object_id();