Questions tagged «plugin-development»

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

1
自定义列表表类中的批量操作如何处理?
我正在处理要在WordPress仪表板中显示的自定义数据表。该表从我在插件中内置的数据库表填充。 我在此区域中的大多数编码问题都使用了提供的WordPress Custom List Table示例,但是该示例没有任何用于处理批量操作的内容。这是记录的示例的链接:http : //wordpress.org/extend/plugins/custom-list-table-example/ 为了处理批量操作,该示例仅提供以下内容: function process_bulk_action() { //Detect when a bulk action is being triggered... if( 'delete'===$this->current_action() ) { wp_die('Items deleted!'); } } 我想知道如何提取为操作选择的项目,以便我可以删除它们或相应地编辑其数据库条目。

2
如果自定义管理页面未连接到add_options_page(),则不会显示Settings API更新的消息
一直在使用Settings API时发现,仅当通过add_options_page()将设置页面挂接到WordPress菜单时,才会显示消息(无论是成功还是错误)。其他任何方法均不起作用,例如add_dashboard_page()。想知道这是否是真的吗?我尝试使用的示例代码的答案是包含“ RegisteredSettingsTest”类的答案,该类在还想更新Settings API之外的选项时在何处钩挂Settings API的register_settings?

5
从个人API更新插件
目前,我正在开发Wordpress插件,而我不想在Wordpress插件存储库中使用。但是,我仍然希望能够从自己的API存储库向我的客户推送更新。 我已经阅读了很多有关此内容的内容,其中似乎有一件事是pre_set_site_transient_update_plugins过滤器,但是我找不到太多有关此的信息。我已经尝试了本教程(http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/),但是该教程无法正常工作。从评论中可以看出,其他人实际上可以使用几乎是最新版本的WP来工作(最新的响应时间为4月22日)。 我尝试从站点安装插件并将API文件夹放在第二个域中,但是当有可用更新时,我通常会收到更新通知,但根本没有显示。 我不确定是否确实可以让自定义插件从其他存储库运行自动更新,所以我想听听这里是否有人对此有任何经验?教程中的解决方案似乎是一个简单的解决方案-我想知道是否有可能以更高级的方式来实现? 从我自己的存储库中获取此自动更新的任何帮助将不胜感激! (PS:我正在运行WP版本3.1.3)

4
通过插件代码处理大型HTML输出
我最近写了我的第一个WP插件,它添加了用于将自定义jquery图像库嵌入到帖子中的简码。它主要只是将大量HTML以及初始化所需的javascript转储到帖子中。 但是,我必须按程序将HTML输出构建为PHP中的字符串。这种标记汤总是让我发疯,并且我习惯使用MVC框架,该框架提供诸如辅助函数和用于生成HTML的部分模板之类的东西。 需要管理大量动态构建的HTML或JS的插件作者的一般方法是什么?

3
插件保存/缓存文件的标准位置?
是否有关于插件应在何处缓存文件的官方指南? 如果没有,是否有我可以遵循的最佳实践? 例如,插件从后端系统获取内容可从缓存文件中受益,因此它不会重复从后端获取相同的内容。 由于大多数查询都会导致缓存插件或数据库教程,因此在这里和其他地方进行搜索非常困难。 我的直觉是将它们放入的子目录中wp-content/uploads。 我的第二本能是将文件保留在插件的目录树中。这样可将插件数据分组在一起,但不会遵循其中包含用户内容的WordPress体系结构(看上去是这样)/uploads。


3
如何在插件中使用jQuery UI
当我用Google搜索某事​​,却什么也没有返回时,这真是令人难过的一天。我正在尝试使用默认的datepicker(或此时的任何datepicker),但由于我对Wordpress / PHP缺乏了解而无法使用。在我的插件中,我尝试注册jquery和ui,并且显然在此过程中破坏了WordPress的其他部分。有人可以告诉我我做错了什么,如果他们可以提供可行的解决方案,我将废弃所有代码: add_action('init', 'add_styles'); function add_styles(){ wp_deregister_style('simpleschoolstyles'); wp_register_style('simpleschoolstyles', SSM_STYLEFILE); wp_deregister_script( 'jquery' ); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js'); wp_deregister_script( 'jquery-ui' ); wp_register_script('jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js'); wp_deregister_style( 'jquery-ui' ); wp_register_style( 'jquery-ui', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/pepper-grinder/jquery-ui.min.css' ); wp_deregister_script('maskedinput'); wp_register_script('maskedinput', SSM_PLUGIN_URL . '/includes/js/jquery.maskedinput.min.js'); wp_deregister_script('simpleschool'); wp_register_script('simpleschool', SSM_PLUGIN_URL . '/includes/js/simpleschool.js'); } add_action('wp_enqueue_scripts', 'load_scripts'); add_action('admin_enqueue_scripts', 'load_scripts'); function load_scripts() { wp_enqueue_style('jquery-ui'); wp_enqueue_style('simpleschoolstyles'); wp_enqueue_script('jquery'); wp_enqueue_script('jquery-ui'); …

1
在多站点中卸载插件的脚本
我刚刚意识到,uninstall.php带有插件的传统文件无法在Multisite中使用。 if ( !defined( 'WP_UNINSTALL_PLUGIN' ) ) exit(); delete_option( 'plugin_option_name' ); 这不会删除所有wp_SITE-ID_options表中的子站点选项。 是否有执行此操作的标准方法?

2
在wp_remote_get中传递当前的cookie以获取草稿发布预览
我想在wp_remote_get函数中传递当前用户cookie,以获取草稿发布预览页面内容。 我已经检查了以下问题: 您传递给wp_remote_get的URL以加载当前帖子预览的正文? 如何通过身份验证从wp_remote_get调用“预览帖子”? 但是在它们两个中都出现了如何使cookie传递给wp_remote_get函数。 我假设我可以做我想将cookie传递给wp_remote_get函数的操作,在WordPress文档中,这里提到了WordPress如何存储cookie,但是如何确保它们在cookie名称中使用哈希值呢? 我要执行的操作是给一个Post ID,以获取WordPress Post视图页面的内容并对其进行分析。对于已经发布的帖子,一切正常,但是对于草稿帖子,我知道该页面不存在。这是简化的代码: (...) $post_permalink = get_permalink($post_id); $response = wp_remote_get($post_permalink); $whole_post_page = $response['body']; (...) 该代码在帖子的所有者对其进行编辑时执行,因此用户已经通过身份验证,并且该请求是针对本地帖子的。如何完成wp_remote_get返回“预览预览”页面的内容?就像WordPress在浏览器中转到预览链接时一样。 先谢谢了。


1
使多个作者可以访问插件的WP.org存储库
我发布的一个插件有一个协作者。因此,我将它们放入readme.txt文件中,它们显示在插件页面上。 是否这样做会自动赋予他们访问该插件的SVN存储库的权限?还是要通过其他流程才能使他们访问?还是每个回购只允许一个用户? 谢谢!

1
使我的插件多站点兼容
我希望将我的插件安装在每个博客上,并为每个博客创建数据库表。我有以下代码: register_activation_hook( __FILE__, 'install1' ); function install1() { global $wpdb; if (function_exists('is_multisite') && is_multisite()) { // check if it is a network activation - if so, run the activation function for each blog id if (isset($_GET['networkwide']) && ($_GET['networkwide'] == 1)) { $old_blog = $wpdb->blogid; // Get all blog ids $blogids …

3
如何在wp_options中使用a:n:{{}}语法存储选项?
我正在检查特定插件的工作方式,并注意到它以这种数组格式将其option_value的数据存储在wp_options中... a:2:{i:20; a:2:{s:8:“原始”; s:15:“ 20.original.jpg”; s:9:“缩略图”; s:12:“ 20.thumb .jpg“;} i:8; a:2:{s:8:”原始“; s:14:” 8.original.png“; s:9:”缩略图“; s:11:” 8.thumb .png“;}} 我喜欢这种方法,因为它只使用一行来保存我的自定义数据,因此卸载清理很容易。有没有一种标准方法可以对导致这种语法的自定义字段执行获取/设置操作? 更新:感谢Denis和其他添加了回复的人。 如果其他人有这个问题,这是有关此方法的出色教程> http://striderweb.com/nerdaphernalia/2008/07/consolidate-options-with-arrays/

2
get_option()是否比访问get_transient()更快?
今天,我对数据库进行了测试,以探讨从选项,自定义表和瞬态访问键之间的速度差异。我运行了1000次测试,以下是运行1000次get操作所花费的时间: get_transient() 0.0245秒 get_option() 0.0068秒 自定义表中的简单选择操作0.65秒 我还检查了此测试过程中瞬态未过期。所以问题是,get_option()比get_transient()我测试中的速度快还是弄乱了?自定义表格是否由于WordPress默认缓存的选项而延迟?另外,选项是否也由瞬态等不同的缓存插件缓存?

1
何时使用异常vs错误对象vs普通false / null
我正在编写插件,正在尝试确定何时使用不同的错误处理方法。 我正在考虑三种方法: 引发异常(自定义类) 返回错误对象(WP_Error的扩展名) 只需返回null / false 我正在考虑的一些情况 尝试获取/设置注册表中不存在的选项 将无效的值传递给方法(应该很少) 调用类的重载程序无法解析的方法 有什么建议吗?由于编写WordPress插件有一些特殊的注意事项,因此我不确定是否值得在一般的PHP板上进行询问。

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.