WordPress的全局变量

WordPress 内置很多全局变量,合理利用这些变量,能对 WordPress 开发带来很多便利。

全局变量使用方法

访问 WordPress 中的全局变量

如果你想在你的代码中访问一个全局变量,首先做的事是把这个变量用global声明下: global $variable;

此外 WordPress 的每个全局变量也都可以通过对应的函数来获取,WordPress 官方推荐的方式是用过函数的方式来获取这些全局变量。

  1. global $wp_version; //方法1 提前用global声明
  2. //或者
  3. $wp_version = get_bloginfo(‘version’); //方法2 使用对应函数获取
  4. echo $wp_version;

注意 get_query_var() 只取回 WP_Query 可识别的公共查询参数,也就是说如果你添加了自定义查询参数,直接通过 get_query_var() 函数是获取不了的。要想获取自定义查询参数的值,我们需要通过使用'query_var' 过滤器添加自定义查询参数

获取 WordPress 中的全局变量

除了 WordPress 内核注册的全局变量,一些主题和插件也有可能会注册一些全局变量,如果需要查看系统中已经注册的所有全局变量,可以通过下面的代码查看。

  1. echo “<pre>”;
  2. print_r($GLOBALS);
  3. echo “</wan>”; //具体使用时请将 wan 改为 pre

数据库全局变量$wpdb

在 WordPress 的主题或插件文件中使用 wpdb 函数,直接声明该全局变量即可使用,但在根目录或非 WordPress 环境下调用 WordPress 的核心数据库操作功能,需要调用 WordPress 的根目录的 wp-blog-header.php 配置文件:

  1. //根据具体需要设定调用目录
  2. require_once(‘./wpblogheader.php’);
  3. //声明全局变量$wpdb
  4. global $wpdb;
  5. // wpdb 插入数据
  6. $wpdb->insert( $wpdb->prefix . ‘fanly’, array( ‘name’ => ‘Fanly’, ‘url’ => ‘wangejiba.com’ ) );
  7. // wpdb 删除数据
  8. $wpdb->query( “DELETE FROM “ . $wpdb->prefix . “fanly WHERE ‘url’ = ‘wangejiba.com'” );
  9. // wpdb 修改数据
  10. $wpdb->update( $wpdb->prefix . ‘fanly’, array( ‘name’ => ‘Fanly’, ‘url’ => ‘wangejiba.com’ ), array( ‘name’ => ‘玩个机吧’ ) );
  11. //wpdb 获取数据
  12. $data = $wpdb->get_row( “SELECT * FROM “.$wpdb->prefix.“fanly WHERE ‘url’=’wangejiba.com'” );
  13. echo $data->name;

WordPress主要全局变量

在循环中可以使用的全局变量

在 WordPress 循环中,全局变量已经被提前获取到了,我们可以直接使用。这些全局变量包含了循环中当前文章的信息。

  1. $post (WP_Post) //当前文章对象
  2. $authordata (WP_User) //当前文章作者对象
  3. $currentday (string) //当前文章的发布日期
  4. $currentmonth (string) //当前文章的发布月份
  5. $page (int) //当前文章被访问的分页,通过查询参数 page 定义
  6. $paged //当前的分页数值,主页,博客页面,存档页面和页面以计算分页,第一页是0
  7. $pages (array) //当前文章的分页信息,每个分页元素包含了 –nextpage–标签分隔的部分
  8. $multipage (boolean) //当前文章是否为多页文章,根据上面的 $pages 参数检测
  9. $more (boolean) WordPress //是否执行 –more– 标签的标记,如果为 true,WordPress 将不会执行 more 标签
  10. $numpages (int) //返回当前文章的总页数,和上面的 $pages x相关

检测浏览器的布尔值

下面的全局变量存储着关于用户浏览器的检测信息,值为布尔值,可以用来用户用来访问网站的浏览器。

  1. $is_iphone (boolean) //iPhone Safari
  2. $is_chrome (boolean) //Google Chrome
  3. $is_safari (boolean) //Safari
  4. $is_NS4 (boolean) //Netscape 4
  5. $is_opera (boolean) //Opera
  6. $is_macIE (boolean) //Mac Internet Explorer
  7. $is_winIE (boolean) //Windows Internet Explorer
  8. $is_gecko (boolean) //FireFox
  9. $is_lynx (boolean)
  10. $is_IE (boolean) //Internet Explorer
  11. $is_edge (boolean) //Microsoft Edge

检测网站服务器的布尔值

下面的全局变量存储着关于网站服务器的一些信息,可以用来判断运行网站的服务器类型。

  1. $is_apache (boolean) //Apache HTTP Server
  2. $is_IIS (boolean) //Microsoft Internet Information Services (IIS)
  3. $is_iis7 (boolean) //Microsoft Internet Information Services (IIS) v7.x
  4. $is_nginx (boolean) //Nginx web server

版本变量

下面的变量存储着 WordPress 中的一些版本信息。

  1. $wp_version (string) //当前安装的 WordPress 版本
  2. $wp_db_version (int) //当前数据库的版本
  3. $tinymce_version (string) //TinyMCE 的版本
  4. $manifest_version (string) //缓存 manifest 的版本
  5. $required_php_version (string) //网站安装的 WordPress 版本需要的最小 PHP 版本
  6. $required_mysql_version (string) //网站安装的 WordPress 需要的最小 MySQL 版本

其他全局变量

  1. $super_admins (array) //拥有超级管理员权限的用户 ID, 此全局变量只对站点所有者注册
  2. $wp_query (object) //Class_Reference/WP_Query 类实例
  3. $wp_rewrite (object) //Class_Reference/WP_Rewrite 类实例
  4. $wp (object) //Class_Reference/WP 类实例
  5. $wpdb (object) //Class_Reference/wpdb 类实例
  6. $wp_locale (object) //本地化信息
  7. $wp_admin_bar (WP_Admin_Bar) //管理工具条对象
  8. $wp_roles (WP_Roles) //WordPress 角色对象
  9. $wp_meta_boxes (array) //已注册 metaboxes 的对象, 包含他们的 id, 参数, 回调函数、标题等信息
  10. $wp_registered_sidebars (array) //已注册的小工具区域
  11. $wp_registered_widgets (array) //已注册的小工具
  12. $wp_registered_widget_controls (array) //已注册的小工具字段
  13. $wp_registered_widget_updates (array) //已注册的小工具更新

后台全局变量

  1. $pagenow (string) //在 wp-admin 中使用,同时参考 get_current_screen() 以了解 WordPress Admin Screen API
  2. $post_type (string) //在 wp-admin 中使用,当前页面的文章类型
  3. $allowedposttags (array) //允许使用的文章标签
  4. $allowedtags (array) //允许使用的标签
  5. $menu (array) //WordPress 的后台菜单数据