作为为客户创建高度定制产品的WordPress开发人员,我发现自己在尝试在WordPress框架中创建PHP脚本时一遍又一遍地遇到了相同的问题。我喜欢使用WordPress的内置功能,但是我一直一遍又一遍地遇到相同的错误消息:“呼叫对未定义的方法……”或“未能打开流”。
然后,根据您的需求,您进行狩猎,以找到需要包含,需要,包括_once或requien_once的适当文件。一旦找到合适的文件,通常在WP-包含文件夹中的某些PHP文档,例如,您必须在脚本开头中包括/需要它 - 通常只是为了找到另一个“呼叫对未定义的方法……”
为了节省时间,让您开始创建代码
现在>
,不是在谷歌搜索解决方案的几个小时(或几天)之后,我创建了一个简单的脚本,然后使用该脚本启动所有自定义文件。它处理了我99%开发所需的所有适当文件。
>警告
我只建议在开发插件,主题或脚本时,然后再进行生产之前,然后查找实际需要的文件。我做
>建议您一直在运行此脚本,因为它会对您可能不需要的文件进行不必要的呼叫。
我会引导您浏览此脚本,以便您可以看到我在做什么以及为什么。这也可以用作您以后的参考工具。
忘记伴侣 - 做自己的道路
我喜欢始终定义斜肌,但是对于某些脚本和WordPress安装,它会受到打击或错过。我曾经使用简单的
>如果>
测试以检查是否定义了腹肌,但这并不总是有效:
[sourcecode语言=“ php”]
/ *注意:这是我不再做的 */
//定义脓肿
如果(!定义('abspath')}}}
定义('abspath',dirname(___文件___)。‘/’);
}[/源代码]
相反,我为WordPress安装创建了自己的路径,该路径更加稳定:
[sourcecode语言=“ php”]
$ location = $ _server ['document_root'];
包括($ location。'/wp-config.php’);
包括($ location。'/wp-load.php’);
包括($ location。'/wp-includes/pluggable.php’);
[/源代码]
假设您的WordPress安装位于网站的根源,即www.yoursite.com
如果不是这样,只需将字符串添加到您的$ location变量中:
[sourcecode语言=“ php”]
$ location = $ _server ['document_root']。 ‘/your-wp-install’;
[/源代码]
三大
根据我的经验,有三个文件在设置脚本时会导致我所有问题。我称这些“三巨头”之所以称为“三巨头”,一旦我包含或要求它们,我的大多数问题就会涉及“呼叫未定义的方法”错误。他们是:
- > wp-config.php
- pluggable.php
- > wp-load.php
一旦有了这些,您会发现大多数错误消失了。
[sourcecode语言=“ php”]
//获得三巨头
包括(abspath。'wp-config.php');
包括(AbsPath。'wp-load.php’);
包括(腹部。
[/源代码]
全局$ WPDB
另一个有用的事情是确保您的$ wpdb是一个全局变量。这允许您创建的任何功能都可以访问WordPress数据库查询功能。这可以节省大量时间。
因为您包括WP-config.php和wp-db.php文件,所以您不应该有任何问题可以使$ wpdb正常工作,但是我仍然喜欢运行> if if 测试以先检查:
[sourcecode语言=“ php”]
//获得四大
全球$ WPDB;
如果(!isset($ wpdb))
{
包括($ location。'/wp-config.php’);
包括($ location。
}[/源代码]
测试脚本
如果您从WordPress的新安装开始,则只有一个管理员用户。因此,尝试连接到WordPress数据库和查询用户没有意义。我构建了这个简单的测试,以查看我们是否正确连接。如果是这样,您将在表中看到用WordPress注册的姓名和电子邮件地址:
[sourcecode语言=“ php”]
/*
上面的测试包括陈述正在工作
列出所有管理员及其电子邮件
表中的地址。
*/
//开始测试
$ args = array(//设置查询以仅获取管理员
“角色” =>“管理员”,
'fields'=>'all_with_meta’
);
$ query = get_users($ args); //使用get_users调用
//设置桌子
echo'’; //关闭表标签
//结束测试 - 发表或从此处删除或删除上述“开始测试”
[/源代码]
如果测试有效,并且您会看到您的姓名和电子邮件地址,则只需将我们的评论删除,然后开始编码即可!
您可以在WordPress文件夹中的任何位置删除此PHP文件,并且它将起作用。因此,对于初始测试和编程,此脚本可以为您节省大量的时间,否则在基本技术问题上花费了故障排除。
同样,一旦功能正常工作,您可能需要做一些详细的工作,并且仅包含绝对必要的文件。如果您不需要包含wp-config.php文件,请不要!只需评论代码,逐条排列,然后查看是否正常工作。保留您需要的东西,失去其余的。
希望这可以节省您的大量时间,并让您专注于编码,而不是为WordPress开发所需文件的基本映射。
这是一个完整的脚本,可轻松参考。只需复制,将文件保存在需要的地方,并获得一些乐趣,完成工作:
[sourcecode语言=“ php”]
“管理员”,
'fields'=>'all_with_meta’
);
$ query = get_users($ args); //使用get_users调用
//设置桌子
echo'’; //关闭表标签
//结束测试 - 发表或从此处删除或删除上述“开始测试”
?>
[/源代码]
您想深入研究PHP吗?查看我们的合作伙伴网站phpmaster.com。
>关于WordPress的常见问题(常见问题解答)包括/需要脚本
>在WordPress中包含和要求之间有什么区别?主要区别在于它们如何处理失败。如果找不到文件,请包括发出警告,但允许脚本继续,而要求将导致致命错误并停止脚本。因此,在应用程序运行时需要使用该文件时使用require,并且在文件不强制时使用。 > Incluber/requient脚本可用于通过包括与安全相关的PHP文件来增强WordPress网站的安全性。例如,您可以包括一个文件,该文件包含用于对用户输入,检查用户权限或防止SQL注入攻击的功能。始终确保随附文件的路径是正确且安全的,以防止文件包含漏洞。
>为什么我的wpdb不起作用或在帖子中显示任何内容?
>无法正常工作。这可能是由于语法错误,数据库凭据错误或数据库服务器的问题所致。确保您在脚本开头中包含了wp-load.php文件以使用WPDB类。另外,请检查您的SQL查询是否是否有错误,并确保已正确准备以防止SQL注入攻击。> WordPress中的Abspath是什么? WordPress具有通往WordPress目录的绝对路径。它通常用于Inclubly或要求语句中包含WordPress目录中的文件。要使用它,只需将Abspath预先到文件的相对路径上即可。例如,需要(Abspath。'wp-config.php’);将包括wp-config.php文件。
>如何将JavaScript正确添加到WordPress?
以正确地将JavaScript添加到WordPress中,您应该使用wp_enqueue_script函数。此功能使您可以在WordPress标头或页脚中包含JavaScript文件,指定依赖项并控制文件的版本。始终在functions.php文件或插件中使用wp_enqueue_script,而不是直接在header.php或footer.php文件中。
>为什么我的wpdb不加载?
如果您的wpdb是不加载,这可能是由于您功能中缺少全局声明。 WPDB类是WordPress中的一个全局变量,因此您需要在将其在函数中使用它之前将其声明为全局。例如,全局$ wpdb;在您的功能开始时,应该解决问题。
>我如何使用inclage/requiend脚本将css文件包含在wordpress中?
将CSS文件包含在WordPress中,您应该应该使用WP_ENQUEUE_STYLE功能,而不是Include或需要脚本。 WP_ENQUEUE_STYLE函数允许您在WordPress标头中包含CSS文件,指定依赖项并控制文件的版本化。始终在functions.php文件或插件中使用wp_enqueue_style,而不是直接在header.php文件中。
我可以使用inclage/requiend脚本在WordPress post中包含php文件吗??
不,您不能使用Include或要求脚本将PHP文件包含在WordPress帖子中。出于安全原因,WordPress帖子不支持PHP代码。如果您需要在帖子中包含php文件,则应创建一个包含文件的短代码,并在帖子中使用短代码。 我如何使用inclage/requiend脚本来包含来自一个的文件wordpress中的插件?
>
要在WordPress中包含一个文件,您可以将plugin_dir_path函数与include或需要脚本结合使用。 plugin_dir_path函数将绝对路径返回到插件的目录。例如,包括(plugin_dir_path(file)。'myfile.php’);将与当前文件相同的目录中包含MyFile.php文件。>我可以使用inclage/requiend脚本在wordpress中包含一个文件吗?从WordPress中的主题中,您可以将get_template_directory函数与inclage或需要脚本结合使用。 get_template_directory函数将绝对路径返回到当前主题的目录。例如,包括(get_template_directory()。‘/myfile.php’);将包括当前主题目录中的myfile.php文件。>以上是最终包括/需要WordPress脚本的详细内容。更多信息请关注PHP中文网其他相关文章!