Questions tagged «plugin-development»

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

1
调用WordPress.org API是否有限制?
我正在编写一个可以调用https://api.wordpress.org/plugins/info/1.0/{slug}.json的插件 调用WordPress.org API是否有限制?例如每小时一次或每10分钟一次,等等。了解更多-https://codex.wordpress.org/WordPress.org_API#Plugins

2
从主题获取插件目录
有谁知道从主题的functions.php中获取插件目录路径的非hacky方法? 我使用了plugin_dir_path(FILE),但是由于在主题的functions.php中调用了它,它返回了该文件的路径。不是插件目录。我可以对它进行字符串操作并添加插件路径,但这感觉几乎与对整个路径进行硬编码一样糟糕。 我已经使用它工作: require_once( ABSPATH .'/wp-content/plugins/ehu-events/event-widget.php' ); 但是我知道那太老套了,而且是错误的,我可能会因为使用它而被wordpress社区拒之门外! 我可以使用标准的wordpress功能吗?

5
如今,编写<WP 3.x兼容插件的重要性是什么?
我目前正在编写一个带有自定义帖子和几个功能的简单插件,使用帖子元数据并将几个变量添加到数据库的“选项”表中。在研究期间,我在WP Codex中看到了一些有关使该插件向后兼容WP 3.x之前的版本的参考,我只是想知道现在纳入这种兼容性有多重要。 例如,我见过(由客户端安装)的WP最旧的版本是3.2或附近。我无法想象许多人的东西都早于3.x,但我可能是错的。我知道从理论上讲,您应该始终尝试使其完全兼容,但实际上,有人知道包含该功能有多么重要吗? 谢谢

1
如何为WP_Query创建灵活的抽象?
我的问题是关于php的,但是在我创建插件时涉及到wordpress。情况是我有5个问题,每个问题有6个选择,每个选择一个。现在,此人可以从每个选择中选择一个,也可以选择几个。我已经创建了if条件,现在该条件使我发疯,因为它已经太久了,并且会进一步发展,就像将进行近100种组合一样。我不希望那样,我知道有一种多维数组的方法,但是不是wordpress的插件或PHP专家。因此,如果有人可以为我排序。 $qs = $_POST['q1']; $q2 = $_POST['q2']; $q3 = $_POST['q3']; $q4 = $_POST['q4']; $q5 = $_POST['q5']; $q6 = $_POST['q6']; $args = array( 'post_type' =&gt; 'product', 'posts_per_page' =&gt; -1, 'tax_query' =&gt; array( 'relation' =&gt; 'AND', array( 'taxonomy' =&gt; 'product_cat', 'field' =&gt; 'slug', 'terms' =&gt; 'fashion-follower' ), // array( // 'taxonomy' =&gt; …

1
插件文件是否必须遵循特定的约定才能被WordPress“挑选”?
我使用通常的惯例开发了一个插件,即在plugin文件夹之后(即prefix-someplugin文件夹和prefix-someplugin.php文件)命名主插件文件。但是,我看到了一些使用以下结构的插件: prefix-someplugin - plugin-loader.php // This file just loads src/prefix-someplugin.php - /src - prefix-someplugin.php 显然,如果他们使用了这种结构,则意味着它可以工作。问题是我不确定它如何工作,因此是我的问题。WP如何知道要加载哪个文件作为主插件文件?我本来以为它会查找以文件夹命名的文件,只是添加.php为扩展名,但看来我错了。 WPjust是否扫描wp-content/plugins文件夹,并加载在其中找到的所有文件,还是遵循不同的逻辑? 预先感谢您的回答。

5
检查媒体库中是否已存在文件
我正在插件中创建自定义文件,并使用Wordpress Codex中针对wp_insert_attachment的代码将其添加到媒体库中。但是,我的插件有时会覆盖这些文件。我需要确保文件不会再次添加到媒体库中。这是当前代码: $wp_filetype = wp_check_filetype(basename($filename), null ); $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' =&gt; $wp_upload_dir['baseurl'] . '/' . _wp_relative_upload_path( $filename ), 'post_mime_type' =&gt; $wp_filetype['type'], 'post_title' =&gt; preg_replace('/\.[^.]+$/', '', basename($filename)), 'post_content' =&gt; '', 'post_status' =&gt; 'inherit' ); $attach_id = wp_insert_attachment( $attachment, $filename); // you must first include the image.php file …

4
哪里放第三方PHP库?
我正在开发几个开源插件和一个主题(“套件”的所有部分),它们都使用相同的第三方PHP库。我想知道将其包含在Wordpress中的最佳方法是什么。这里有一些想法: 将其放在其中一个插件中,并要求安装并激活该插件 创建一个特殊的“核心”插件,除了包含插件外什么也不做 直接放进去 wp-content 有什么想法吗?

3
如何在自定义菜单页面上实现add_settings_error?
《专业WordPress插件开发》一书详细说明了如何正确使用Settings API,还演示了如何添加菜单和子菜单,但不幸的是,它没有提供任何此类示例。尽管我设法使其中的大部分工作正常进行,但我仍无法弄清楚如何在自定义菜单页面上正确实现add_settings_error。这是我的代码: function settings_main_validate( $input ) { $valid['text_string'] = preg_replace( '/[^a-zA-Z]/', '', $input['text_string'] ); if ( $valid['text_string'] != $input['text_string'] ) { //add_setting_error: $title, $id, $error_message, $class add_settings_error( 'fields_main_input', 'texterror', 'Incorrect value entered!', 'error' ); } return $valid; } 上面的验证在使用渲染设置时效果很好add_options_page,但在使用渲染的页面上不会显示设置错误add_menu_page。

3
初始提交后,插件目录“ Last Updated”没有更改吗?
我发布的第一个版本我重写分析插件与上2010-05-12提交。但是WordPress.org插件目录仍显示2010-11-27作为“最后更新”日期 -这是在存储库中创建插件目录的日期。 开发者常见问题解答指出: 上次更新时间版本号更改后 ,上次签入到适当目录(trunk /或稳定标签目录)的时间。 大多数开发人员会在创建插件目录后立即提交其第一个版本,因此您不会注意到它们之间的区别。但是我发现在目录创建后超过一天提交的其他插件中也存在相同的差异。 我一口气提交了trunk/和tags/1.0/目录(使用本地副本,然后提交),但是另一个有此问题的插件却像大多数人一样做到了:提交,trunk/然后远程复制到tags/1.0/。 奥托最近说: 自述文件唯一的一次解析和条目的重新生成是在插件版本更改时。但是,对于使用标签的人来说,这通常是在制作新标签并更新稳定标签之后发生的。 自述文件已解析,所以我不知道我还能做些什么来使其正确更新?

3
我该如何做才能使“添加新帖子”页面的“可见性”默认设置为“私人”?
我正在尝试创建一个可更改“添加新帖子”页面的插件,因此默认情况下,“可见性”字段显示为“私人”: Status: Draft Visibility: **Private** Publish immediately [Publish] ...与WordPress通常假定的相反: Status: Draft Visibility: **Public** Publish immediately [Publish] 目前,我正在使用“ wp_insert_post_data”过滤器,这使我可以将post_status的所有信息都从“自动草稿”更改为“私人”。在这种情况下,会有意想不到的副作用:将post_status更改为“ private”似乎会自动发布该帖子,将编辑器中的按钮更改为“ Update”。此外,如果用户在指定标题之前进行了保存,则该帖子将以标题“自动草稿”发布。 有什么方法可以将默认情况下的“可见性”简单地更改为“不公开”,而不会自动发布帖子,并将按钮更改为“更新”?在普通WordPress中,用户可以手动将可见性更改为“私有”,并且该按钮将保持为“发布...”,我只需要通过插件即可实现。我还希望确保用户仍然可以选择“公开”。 谢谢!


3
上传后获取上传的附件图像的路径
使用媒体上载屏幕在Wordpress中上载附件后,在图像上载后是否可以运行钩子或过滤器,以便获取上载图像的路径以便进行分析? 我正在构建一个插件,该插件将在上载图像后对其进行分析,然后使用在图像中找到的平均颜色标记该图像。唯一的问题是我不知道可以使用哪个钩子,该钩子将在图像上传后立即触发,然后提供一种获取新上传文件路径的方法。 任何帮助将不胜感激。

2
重新设计自定义帖子类型的“添加新”页面
我一直在谷歌上浏览此问题的解决方案。我正在编写一个自定义帖子类型插件,用于登录我们获得的访问者。我最初写的是没有自定义帖子类型的模型,然后从谷歌搜索中来到这里,看到了一个截图,其中显示了一个自定义帖子类型的示例,用于存储有关律师的信息。它表明有人用一个全新的界面为自定义帖子类型重新设计了“添加新” /“编辑”页面。 我想知道wordpress @ stackexchange是否有任何资源可以重新设计自定义帖子类型的“添加/编辑”页面。 但是,我不记得为找到该文章所做的搜索词。 谢谢, -Zack


3
获得我的新插件的同行评价?
让经验丰富的WordPress开发人员看一下我的插件并提出建设性的批评的最佳方法是什么?我已经在该站点上编写了代码来解决我的一些问题,我认为它们对其他人也可能有用。但是,由于他们是我的第一个公共WordPress插件,并且在公共WordPress目录中看到了很多不太理想的示例,因此我想知道“我的立场”以及如何改进我的插件。我已经阅读了最佳实践列表,并且仍然需要应用其中的一些最佳实践,但是我还想回答一个更笼统的问题:“这是解决此问题的好方法吗?” 我只是重新阅读了有关的讨论wp-hackers(我没有意识到参与者也是如此参与该站点,而“最佳实践”问题是它的直接结果)。我不确定这样的系统是否可以满足我的需求,并且我同意Paul的担心: 上周,当我阅读有关该线程的原始评论时,我的目的是将同行评审过程组合在一起,在此过程中,插件开发人员可以向其他插件开发人员提供建议,以作为对其代码的审查。我最初将这个建议作为“可以使用您的代码,但是如果您只是挂接到此WP过滤器并尝试了此技术,则可以更好地使用您编写的这组例程(请参见xxx插件为例)” ”。我的目标是分享WP插件开发知识,并使任何平庸的插件开发人员成为更好的开发人员。像我自己。 这与进行逐点检查清单审查的范围有所不同,它更像是“指导”。似乎有很多人愿意这样做,而且(甚至更好)很多人都参加了此站点,所以我们如何将所有这些能量转化为具体的东西? 我当前的示例是为解决“图像调整大小”问题而编写的三个插件。我为每个插件写了很长的介绍性注释,(希望如此)可以使我更容易地理解我的意图,而无需阅读完整的代码。我还能做些什么使别人更容易看一下? 请忽略我当前的具体要求。他们不仅为时过早,而且我改变了主意,不想因自己的具体情况破坏一般性讨论。

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.