$wpdb 在 WordPress 插件文件中不起作用

2024-01-06

我正在使用 WordPress 插件。我创建一个自定义表单,用户在其中添加值,然后单击提交按钮。当用户单击提交按钮时,它会重定向到自定义流程文件,我在其中编写用于插入和更新数据的查询。

I my 进程.php文件,首先我打电话全局 $wpdb,但是我的插入和更新查询不起作用,所以我从网上找到了一个解决方案来要求配置文件文件在我的进程文件中。

require_once( str_replace('//', '/', dirname(__FILE__) . '/') . '../../../wp-config.php');

Then 全局 $wpdb工作完美。但 WordPress 存储库表示这是非法的。我已经将我的 form.php 文件包含在插件主文件中索引.php,所以我还包括进程.php并注释 require_once 代码,但它不起作用。我不知道如何解决这个问题。

这是我的 form.php 代码:

<form method="post" action="<?php echo plugin_dir_url(__FILE__); ?>settings_process.php">

<input type="text" name="post_name_slug" id="post_name_slug" value="<?php echo POST_NAME_SLUG ?>" />

<input type="submit" name="save_settings" value="<?php _e("Save Changes","abc") ?>" />

这是我的 process.php 代码:

require_once( str_replace('//', '/', dirname(__FILE__) . '/') . '../../../wp-config.php');
    global $wpdb;

My insert and update queries

那么有没有其他解决方案,请帮助我。

多谢


使用 WP 操作可以解决您的问题。您的问题是您没有给 WP 机会来完成它的生命周期并加载所有必要的源。通过包含配置文件来调整它并不是一个好方法。您可以在插件加载期间注册一个操作或__construct()如果插件封装在类中,则函数。 您可以使用多种操作来实现此目的,我主要使用这些:

  • wp_ajax_{action_name} - 如果使用 AJAX
  • admin_post_{action_name} - 如果请求来自 wp-admin 中的登录用户
  • admin_post_nopriv_{action_name} - 如果有人可以执行此请求

那么代码就很简单了:

add_action('wp_ajax_mysettingsprocess', 'mySettingsProcess');
//If plugin "is object"
add_action('wp_ajax_mysettingsprocess', array($this, 'mySettingsProcess');

如果这行代码存在于您的插件源中,它将尝试调用function mySettingsProcess() { ... }功能。在这个函数中你使用不会有问题$wpdb全局变量您还必须对请求提供适当的回复,WP 不会为您做这件事。

表单操作将如下所示:

  • for admin_post_ and admin_post_nopriv_:http://{wp_url}/wp-admin/admin-post.php?action=mysettingsprocess
  • 如果使用 JS/JQuery 和 AJAX 添加到data: { action: 'mysettingsprocess' },

所有这些信息都详细描述在WP Codex https://codex.wordpress.org/。一般来说,我会使用 WP 内置功能来启动任何插件自定义代码。添加位于 WP 之外的 PHP 源并不是一个好的做法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

$wpdb 在 WordPress 插件文件中不起作用 的相关文章

  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • 我如何知道请求是否来自 flash swf?

    我有一个用 flash 开发的应用程序 我需要访问一些 php 文件 因此 如果访问来自 swf 则 php 文件会返回一些数据 如何判断请求是否来自Flash 无需将 get post 变量传递给 php 可能是用户代理 推荐人 请记住
  • 访问 public_html 级别之外/以下的文件

    如何通过 url 访问文件 home uzair etc index php 即使我运行域 something com 它显示了 home uzair public html index php 这个文件 任何人请帮助我如何访问放置在 ho
  • 如何比较两个字符串的大小写和变音符号不敏感?

    我有两根弦 字符串 1 塞巴斯蒂安 字符串 2 塞巴斯蒂安 我想通过忽略 重音 字符来比较这两个字符串 谁能知道这个逻辑吗 提前致谢
  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • PHP 如果不存在,则从字符串中删除 ','

    我正在运行这段代码 stmt pdo conn gt prepare SELECT from admin where support emails support emails and logged logged and disabled
  • TCPDF/PHP 和字体:大写数字(血统数字?旧样式?)

    我得到了一种特殊的字体 上面有这样的数字 例如 正如您在 3 上看到的 一些数字下降到基线以下 我想要实现的是 这些数字不会低于该线 并且看起来像这样 在 Word 中 可以在相同字体的字符设置中轻松设置 如何在 TCPDF 中呈现数字 我
  • Facebook Graph API v3.1 开发人员访问令牌权限限制

    如您所知 Facebook 将其 API 升级到了 V3 1 现在正在慢慢地淘汰旧的 API 和应用程序 因此我们必须迁移到新的 API 他们做出了一些艰难的决定 这对垃圾邮件网站来说是好事 但对开发人员来说也很难 提醒 Graph API
  • PHP/MySQL:如何在网站中创建评论部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我不会问 如何使用 PHP MySQ
  • 访客客户检查 Woocommerce 订单账单电子邮件时可享受首单折扣

    通过对照正在处理和已完成的订单检查来宾客户的电子邮件地址 如果电子邮件没有订单 我想给来宾 首单折扣 如果这能在客人输入电子邮件时发生 那就太好了 我想我已经成功制作了折扣代码 现在我请求帮助合并这两个代码 使其一切正常 这是折扣代码 ad
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • PHP mkdir() 和 fopen() 不起作用 - 权限问题? umask问题?

    以下 PHP 脚本无法创建目录 它也将无法创建文件 当目录已经存在时 ini set error reporting E ALL define ABSPATH SERVER DOCUMENT ROOT echo ABSPATH br br
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 如何在 Laravel 代码中使用 Artisan 命令?

    如何在我的 php caode Ex 中使用 Artisan 命令行 php artisan version to 您可以从控制器调用 Artisan 命令 如下所示 calling of migrate install Artisan c
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • 禁用/启用用户访问/下载,但允许 php 编辑 - 使用 chown 和 chmod

    我想 move uploaded files到某个文件夹 比方说http localhost myproject protected 并且 PHP 应该能够rm mv cp 里面的一切protected 例如 启用 禁用用户对任何文件的访问
  • 如何获取 URL 中未知的 $_GET 值的数组?

    我正在使用一个在线购物车 它接受订购的商品并通过 URL 将其唯一 ID 传递到 process php 页面 所以 URL 看起来像这样 process php code 1 231 code 2 532 code 3 342 Anoth
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • 具有外键和与同一模型的多对多关系的 Django 模型

    我有一个 django 模型如下 class Subscription models Model Transaction models ManyToManyField Transaction blank True null True Use
  • 使用 jquery 检测单击了哪个列表元素(列表是动态添加的)

    Case1 列表已经存在于 html 中 ul li One li li Two li ul 使用检测到单击的 li 元素 list1 li bind click function alert this html 上面工作正常 Case 2
  • 在C++中从JNI调用Java Jar代码

    我正在尝试模仿这个 http snuggletex sourceforge net maven xref uk ac ed ph snuggletex samples MinimalExample html http snuggletex
  • 为什么 cmath pow 给出的答案不准确?

    在 C 11 中 pow 1061 6 1426567426713180416 检查最后 3 位数字 我确信结果是错误的 因为 1061 6 1426567426713180361 但另一种方法做得对 long a 1 for int i
  • 如何在web.config转换过程中添加文件?

    我正在使用 Visual Studio 2012 开发一个网站 web config 当前在其转换中包含以下文件 web 调试 config web Release config 我最近在我的项目中添加了一个新的构建配置 名为 Stagin
  • 从字典中随机输入

    从 C 字典中获取随机条目的最佳方法是什么 我需要从字典中获取一些随机对象以显示在页面上 但是我无法使用以下内容 因为字典无法通过索引访问 Random rand new Random Dictionary lt string object
  • Magento Grid - 将平面表连接到 EAV 后排序和过滤工作不正确

    我有 2 个定制系列 具有平面数据的常见集合 我需要将他们加入到客户选择中 它与innerJoin 配合使用效果很好 但对连接字段进行过滤和排序不起作用 我该如何解决这个问题 prepareCollection 示例 collection
  • 如何在给定分支中查找文件

    我注意到 在进行代码查看时 我公司的人们通常只给出完成工作的分支 而没有其他任何信息 所以我想一定有一种简单的方法来找出给定分支中具有版本的所有文件 这与查找所有文件是一样的 这已经改变了 是的 我不知道在某个分支中查找文件的预期 简单方法
  • 简单&小,纯javascript灯箱(对话框覆盖)? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个用纯 JavaScript 构建的小型 功能有限的灯箱 这是针对可嵌入小部件的 因此不使用
  • 如何在 C/C++ 中将字符串从 UTF8 转换为 Latin1?

    我的问题很简单 但到目前为止我找不到解决方案 如何转换UTF8编码string到 latin1 编码string在 C 中不使用任何额外的库 如 libiconv 到目前为止我能找到的每个例子都是用于 latin1 到 UTF8 的转换 t
  • 在新的弹出窗口中打开标题位置?

    我想看看是否可以打开这样的标题位置 if GET id 99993 header Location page php 并让它在 jQuery 弹出窗口中打开 prettyPhoto 是一个在线 jQuery 弹出窗口 我正常的 a href
  • 如何从 Java 中的输入文本中删除标点符号?

    我正在尝试使用 Java 中用户的输入获取一个句子 我需要将其变为小写并删除所有标点符号 这是我的代码 String words instring split s for int i 0 i lt words length i words
  • Powershell - 检索内部异常以输出(socketException)

    我最近开始深入研究 Powershell 中的错误处理 我注意到一些我不太理解的东西 我不知道这种行为来自哪里 我有一个简单的函数 它使用以下命令检查域名 System Net DNS GetHostByName 如果这个变量传递给一个不存
  • 删除集合列表的重复项

    我有一个集合列表 L set 1 4 set 1 4 set 1 2 set 1 2 set 2 4 set 2 4 set 5 6 set 5 6 set 3 6 set 3 6 set 3 5 set 3 5 实际上在我的例子中是倒数元
  • 添加新消息时滚动到底部

    我正在制作一个聊天机器人 当用户给出新输入或通过 API 发送数据时 我想滚动到聊天框的底部 它不滚动 滚动只是停留在同一位置 但数据正在添加到聊天框中 我已经尝试过其他聊天机器人的代码 但它也不起作用 var outputArea cha
  • Javascript - 无限滚动 JSON 数组?

    我有这样的 JavaScript items forEach function item index arr console log item price var message BitSkins Price item bprice if
  • 通过相机扫描图像和从相机捕获图像有什么不同吗?

    我需要知道扫描和用相机拍照之间的区别 举个例子 我们通常用安卓手机扫描二维码 条形码之类的东西 它们也是图像 我们可以用相机拍照 它也图像 那么 扫描二维码是指拍摄图像并对其进行处理 还是有什么特殊的东西从像素值获取图像 最大的区别是当你c
  • 如何在 Openscenegraph 中从 2D 鼠标单击屏幕坐标点计算 3D 点(世界坐标)?

    我试图在 2D 屏幕空间上用户选择的点的 3D 空间上放置一个球体 为此 我尝试使用以下技术从 2d 点计算 3d 点 但该技术没有给出正确的解决方案 mousePosition x clickPos clientX window left
  • Jython easy_install 错误

    我的目的是向 jython 添加一些 python 库 即 suds 包 为此 请尝试遵循以下指示http www jython org jythonbook en 1 0 appendixA html setuptools http ww
  • $wpdb 在 WordPress 插件文件中不起作用

    我正在使用 WordPress 插件 我创建一个自定义表单 用户在其中添加值 然后单击提交按钮 当用户单击提交按钮时 它会重定向到自定义流程文件 我在其中编写用于插入和更新数据的查询 I my 进程 php文件 首先我打电话全局 wpdb