You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何访问WordPress数据与仪表盘?Django自定义仪表盘集成WordPress字段

你的WordPress问题解答

嘿,这两个问题都是我日常开发里经常碰到的,给你详细拆解下解决方案:

1. 如何访问WordPress的数据及仪表盘?

先讲最基础的仪表盘访问

直接在你的WordPress站点域名后面加上 /wp-admin/ 就行,比如你的站点是 example.com,那访问 example.com/wp-admin/,输入你当初设置的管理员账号密码,就能进到仪表盘后台了。登录后你能在左侧菜单找到所有数据入口——比如插件管理页看已启用插件,外观页看当前主题,仪表盘首页也会显示WordPress版本信息。

要是需要直接碰底层数据

有两种常用方式:

  • 数据库直接查看:WordPress所有数据都存在MySQL/MariaDB里,你可以通过主机面板里的phpMyAdmin,或者Navicat这类数据库工具连接进去。核心信息基本都在 wp_options 表里:
    • 启用插件列表存在 active_plugins 字段;
    • 当前启用主题的目录名存在 template 和 stylesheet 字段;
    • WordPress版本号存在 version 字段。
      注意:表前缀不一定是wp_,要看你安装WordPress时的设置。
  • 用WordPress内置函数获取:如果是在WordPress主题或插件里开发,直接用官方提供的函数更方便:
    • get_option('active_plugins') 拿启用插件列表;
    • wp_get_theme() 获取当前主题的详细信息;
    • get_bloginfo('version') 直接返回WordPress版本号。

2. Django自定义仪表盘获取WordPress字段展示

要把WordPress的这些数据拿到Django的自定义仪表盘里展示,我推荐两种靠谱的方法,你可以根据自己的环境选:

方法一:用WordPress REST API(推荐)

WordPress 4.7版本之后内置了REST API,不用额外装插件就能用,步骤很简单:

  1. 确认API可访问:先访问你的WordPress站点的 yourdomain.com/wp-json/,如果能看到一堆JSON格式的API端点信息,说明正常。如果不行,去WordPress后台「设置-固定链接」里把固定链接改成非默认模式(比如选「文章名」),API就能正常工作了。
  2. 在Django里写请求逻辑:
    用Python的requests库发GET请求到对应的API端点就行,给你个示例视图代码:
    import requests
    from django.shortcuts import render
    
    def wp_dashboard_data(request):
        wp_site = "https://你的WordPress站点域名.com"
        # 初始化默认值
        active_plugins = []
        active_theme = ""
        wp_version = ""
    
        # 获取启用插件
        plugins_res = requests.get(f"{wp_site}/wp-json/wp/v2/options/active_plugins")
        if plugins_res.status_code == 200:
            active_plugins = plugins_res.json()
    
        # 获取当前主题
        theme_res = requests.get(f"{wp_site}/wp-json/wp/v2/options/template")
        if theme_res.status_code == 200:
            active_theme = theme_res.json()
    
        # 获取WP版本
        version_res = requests.get(f"{wp_site}/wp-json/wp/v2/options/version")
        if version_res.status_code == 200:
            wp_version = version_res.json()
    
        # 把数据传到模板
        return render(request, "你的仪表盘模板.html", {
            "active_plugins": active_plugins,
            "active_theme": active_theme,
            "wp_version": wp_version
        })
    
    要是你的WordPress站点需要登录才能访问API,那就装个「JWT Authentication for WP REST API」插件,生成token后在请求头里加上 Authorization: Bearer 你的token 就行。

方法二:直接连接WordPress数据库

如果你的Django服务器能直接访问WordPress的数据库,这种方法更直接:

  1. 在Django配置里加额外数据库:
    打开settings.py,在DATABASES里加个WordPress的数据库配置:
    DATABASES = {
        'default': {
            # 你的Django默认数据库配置
        },
        'wordpress': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'WordPress的数据库名',
            'USER': '数据库用户名',
            'PASSWORD': '数据库密码',
            'HOST': 'localhost',  # 数据库服务器地址,本地的话就是localhost
            'PORT': '3306',
        }
    }
    
  2. 写查询逻辑:
    可以用Django的connections执行原始SQL查询,示例代码:
    from django.db import connections
    from django.shortcuts import render
    import ast  # 用来解析WordPress存在数据库里的序列化数组
    
    def wp_data_from_db(request):
        active_plugins = []
        active_theme = ""
        wp_version = ""
    
        with connections['wordpress'].cursor() as cursor:
            # 查询启用插件
            cursor.execute("SELECT option_value FROM wp_options WHERE option_name = 'active_plugins'")
            plugins_raw = cursor.fetchone()
            if plugins_raw:
                # 数据库里存的是序列化的Python数组,需要解析
                active_plugins = ast.literal_eval(plugins_raw[0])
    
            # 查询当前主题
            cursor.execute("SELECT option_value FROM wp_options WHERE option_name = 'template'")
            theme_raw = cursor.fetchone()
            if theme_raw:
                active_theme = theme_raw[0]
    
            # 查询WP版本
            cursor.execute("SELECT option_value FROM wp_options WHERE option_name = 'version'")
            version_raw = cursor.fetchone()
            if version_raw:
                wp_version = version_raw[0]
    
        return render(request, "你的仪表盘模板.html", {
            "active_plugins": active_plugins,
            "active_theme": active_theme,
            "wp_version": wp_version
        })
    
    注意:记得把表前缀wp_改成你实际的前缀哦!

最后给你个小建议

不管用哪种方法,都尽量给获取到的数据加个缓存(比如Django的缓存框架),别每次请求都去拉WordPress的数据,既能提升性能,也不会给WordPress站点造成额外压力。

内容的提问来源于stack exchange,提问作者Shri Hegde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 12:07:40