Questions tagged «plugin-development»

WordPress插件可轻松修改,自定义和增强WordPress博客。您可以使用WordPress插件添加功能,而无需更改WordPress的核心编程。


2
插件中的自定义小部件功能不起作用?
我直接从我创建的主题之一中提取了一个代码,它是无序列表中所有50个状态的列表,这些列表打包到一个小部件中,您可以将其拖放到侧边栏上。 问题是,当我尝试在PLUGIN文件中使用此代码时,出现以下错误: Fatal error: Call to a member function register() on a non-object in C:\xampp\htdocs\wordpress\wp-includes\widgets.php on line 431 为什么它在主题中有效,但在插件中无效?顺便说一句,活动主题不是我从中删除代码的主题。 这是我的代码:http : //pastebin.com/ZeRWW3yb 谢谢。

4
拖放后更新窗口小部件表单(WP保存错误)
几个月前,我已经发布了有关此问题的错误报告(在WordPress trac(小部件实例表单更新错误)上),我想我也想在这里写一下。也许有人比我有更好的解决方案。 基本上,问题在于,如果您将小部件拖放到侧栏中,则在您手动按保存(或重新加载页面)之前,小部件表单不会得到更新。 这使得form()依赖于小部件实例ID 的功能中的所有代码都无法使用(直到您按下保存按钮)。诸如ajax请求之类的东西,诸如colorpickers之类的jQuery之类的东西都不会立即起作用,因为从该函数看来,小部件实例尚未初始化。 肮脏的解决方法是使用livequery之类的方法自动触发保存按钮: $("#widgets-right .needfix").livequery(function(){ var widget = $(this).closest('div.widget'); wpWidgets.save(widget, 0, 1, 0); return false; }); 如果未初始化小部件实例.needfix,form()则添加该类: <div <?php if(!is_numeric($this->number)): ?>class="needfix"<?php endif; ?> ... </div> 该解决方案的一个缺点是,如果您注册了许多小部件,浏览器将占用大量CPU,因为livequery每秒都会检查DOM的更改(因此,我没有专门测试过,这只是我的假设:) 有什么建议可以更好地修复该错误吗?

3
WordPress的更新插件钩/动作?从3.9开始
我已经对此进行了几次研究,但是我的搜索没有发现很多东西,除了自定义代码,这可能不是WordPress的良好实践。 从最新版本(WordPress 3.9“ Smith”)开始,插件更新过程中是否已添加钩子?我之所以问是因为这是一个非常基本的需求,但我还没有看到它被添加到了食典中。如果不是,那么开发人员采用的通用和最佳实践是什么? 编辑:只是为了澄清,我不是在谈论激活,而是关于更新,这样,如果数据库中有更改,否则可以解决。

2
单个functions.php还是分成许多小文件?
我正在创建一个带有主题选项的简单框架。我在其中划分了代码块functions.php并将其放置在特定的文件夹结构中。 现在在我的主functions.php文件中,我只有require_once这些文件的调用。 但是为了争论起见-假设我将要包含20个文件。 问题: 这是否以可见的方式影响WP性能? 最好将其全部保存在1个文件中(functions.php) 最好的方法是什么? 谢谢。

2
列出所有侧边栏名称?
我列出了所有这样的侧边栏: global $wp_registered_sidebars; echo '<pre>'; print_r($wp_registered_sidebars); echo '</pre>' 所以我得到类似的东西: Array ( [sidebar-1] => Array ( [name] => Sidebar #1 [id] => sidebar-1 [description] => Sidebar number 1 [before_widget] => [after_widget] => [before_title] => [after_title] => ) (...) ) 但我希望将它们显示为选择列表,例如: <select> <option value ="SIDEBAR-ID">SIDEBAR-NAME/option> <option value ="SIDEBAR-ID">SIDEBAR-NAME/option> (...) </select> Wordpress Codex根本没有帮助。 …

5
将参数传递给管理菜单页面回调?
情况:我正在开发一个插件,并且正在将其作为一个类进行开发,一切正常,直到遇到这种情况。我想把事情弄干净一点,然后尝试一下。 class MyPlugin { function __construct() { add_action('admin_menu', array(&$this, 'myplugin_create_menus'); } //I don't want to write a function for every options page I create //so I prefer to just load the content from an external file. function load_view($filename) { $view = require(dirname(__FILE__).'/views/'.$filename.'.php'); return $view; } //Here is where the problem …

3
如何在插件中加入JavaScript
这次我很努力地尝试在插件文件夹中包含JavaScript文件。 我正在尝试通过从主题目录传输窗口小部件文件来创建插件。我复制了窗口小部件文件,但是该窗口小部件文件取决于JavaScript文件,因此我在插件目录中创建了/ js /文件夹。该文件的托管位置“ jquery.repeatable.js” 我使用了这段代码,但似乎没有包含js文件- function Zumper_widget_enqueue_script() { wp_enqueue_script( 'my_custom_script', plugin_dir_url( __FILE__ ) . 'js/jquery.repeatable.js' ); } add_action('admin_enqueue_scripts', 'Zumper_widget_enqueue_script'); 我在论坛上搜索了此内容-https : //stackoverflow.com/questions/31489615/call-a-js-file-from-a-plugin-directory 但这仍然没有帮助。 我正在重新总结我的问题。在我的插件目录中,此文件夹下有一个js文件-/ js / 我希望包含它是正确的过程,我还需要注册一些东西吗? 这部分有什么问题'admin_enqueue_scripts'吗?


2
get_option函数是否已缓存?
在我的插件中,我使用以下代码从数据库中检索选项: $options = get_option('my_plugin_options'); 如果我在插件的各种功能中使用了10次,WordPress是否会对数据库进行10次查询,还是每个HTTP请求仅进行1次数据库调用并缓存结果?

3
来自类的短代码处理程序的PHP错误
目前,我正在使用以下通用流程为插件添加简码。 class MyPlugin { private $myvar; function baztag_func() { print $this->myvar; } } add_shortcode( 'baztag', array('MyPlugin', 'baztag_func') ); 现在,当调用此类及其方法时,出现以下错误。 致命错误:不在对象上下文中时使用$ this ... (行号是我在上打印的位置$this->myvar) 这是Wordpress的问题,还是我做错了什么?这似乎很简单。

2
带插件的自定义页面
我正在开发一些插件,用于启用自定义页面。在我的情况下,某些自定义页面将包含诸如联系表单之类的表单(并非字面意思)。当用户填写并发送此表格时,应该有需要更多信息的下一步。假设具有表单的第一页将位于www.domain.tld/custom-page/成功提交表单后的位置,然后应将用户重定向到www.domain.tld/custom-page/second。带有HTML元素和PHP代码的模板也应该是自定义的。 我认为使用自定义URL重写可以解决部分问题,但是我目前还不了解其他部分。我真的不知道该从哪里开始寻找该问题的正确命名。任何帮助将非常感激。

3
将屏幕选项添加到自定义管理页面
我想将屏幕选项添加到我的插件设置页面,例如仪表板中可用的选项。 我尝试使用对象的add_option方法,WP_Screen发现它仅支持两个选项。per_page和layout_columns。 有谁知道要使用哪个屏幕选项来获得“仪表板”页面中的选项? 编辑: 让我解释一下我要尝试的内容。 我的批量删除插件中有不同的部分,每个部分让人们根据一些条件(例如类别,标签,自定义分类法等)删除帖子。我想让用户选择要使用的部分以及要隐藏的部分,类似于“仪表板”页面,用户可以在其中选择要查看的仪表板小部件以及要隐藏的仪表板小部件。 现在,要实现此目的,我想显示一个复选框列表(每个部分一个),然后让用户选择要显示的复选框。 为了显示复选框列表,我必须调用对象的add_option方法WP_Screen。当我这样做时,我发现当前add_option函数仅支持这两种类型,而其他函数则被忽略。 每页 layout_columns 但是,仅在仪表板页面中会显示复选框。我想知道如何在自定义管理页面的屏幕选项部分中复制类似的内容。


2
从插件深处获取plugin_dir_url()
我使用该结构编写了几个插件: /plugins/myplugin/myplugin.php /plugins/myplugin/class/class-myclass.php 以便利用面向对象和整体结构我的代码 从类文件中,有时我需要获取基本插件的URL ...我一直在使用以下内容,但是我敢肯定有更好的方法: $this->plugin_location = substr(plugin_dir_url(__FILE__),0, strrpos(plugin_dir_url(__FILE__), "/",-2)) . "/"; 我玩弄的另一个想法是有一个额外的单例类,用于存储插件的所有设置,并通过类文件添加抽象层。 任何帮助是极大的赞赏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.