如果您错过了第1部分和第2部分,请在下面找到它们:
>> WordPress插件样板第1部分:使用WordPress插件板
我们需要准备主题,以便以后可以对其进行测试。我们将使用WordPress默认运输的二十五个主题。我们将使用主题审核团队提供的主题单元测试数据来填充帖子。
>我们将提供各种选择,并且由于我们正在导入WordPress导出文件,因此我们将选择WordPress。根据WordPress的安装,如果我们没有安装WordPress进口商插件,将显示插件弹出窗口。如果您没有它,请首先继续安装插件,一旦完成后,我们将继续进行实际导入过程。
这是默认的WordPress导入页面,因此我们需要选择先前下载的theme-unit-test-data.xml,然后单击“上传文件和导入”按钮。
然后将显示第二个屏幕。不必担心“分配作者”部分,因为我们可以将其作为默认情况。在“导入附件”部分中,请确保勾选复选框“下载和导入文件附件”,以便将所有外部附件都下载并导入到媒体库中。现在,我们准备编写显示我们通知的代码。
>
挂接到the_content filter使用the_content过滤器是更改向用户显示的帖子内容的完美方法。根据上一个教程,我们将将钩子添加到样板类加载器中,唯一的区别是将使用Define_public_hooks方法而不是Define_admin_hooks。
这意味着,我们需要将公共the_content方法实现到我们的OUTED_NOTICE_PUBLIC类中。打开公共/班级淘汰 - notice-public.php并进行相应的修改。
>
有条件修改内容<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
因为the_content过滤器由各种插件和内部WordPress核心使用,所以我们需要谨慎地将我们的自定义内容插入其中。
>>
这是oftated_notice_public类中包含的更新的the_content方法。
计算天数
>在开始之前,让我们设置位置,以使通知显示为“之前”帖子,而阈值的天数为30。
首先,我们需要检索插件的存储设置。 get_option函数将完成这项工作,作为一个安全的度量,我们将将默认值作为第二个参数将其传递给get_option。<span>$this->loader->add_action( 'the_content', $plugin_public, 'the_content' );</span>
>计算当前时间和帖子最后修改时间之间的天数,我们将实例化两个日期对象。我们可以使用内置在DateTime类中的DIFF方法进行准确的时间差测量。请注意,DateTime类仅在php> = 5.3.0。
<span>public function the_content( $post_content ) { </span> <span>if ( is_main_query() && is_singular('post') ) { </span> <span>// do something </span> <span>} </span> <span>return $post_content; </span> <span>}</span>$ $ date_diff是dateinterval类的一个实例,因此我们将拥有有关时间差的一系列数据。如果我们要var_dump $ date_diff变量,这是我们应该得到的,具体取决于您当前正在查看的帖子。
>
<span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 );</span>>我们只对日子价值感兴趣,因为它将与我们的日期阈值进行比较。正如我之前说的,我们将比较它们,以便我们可以将特定类应用于通知div元素,以在帖子之间以不同的方式进行样式。
<span>$date_now = new DateTime( current_time('mysql') ); </span> <span>$date_old = new DateTime( get_the_modified_time('Y-m-d H:i:s') ); </span> <span>$date_diff = $date_old->diff( $date_now );</span>这个简单的比较块足以确定用于我们的Div的哪个类。现在剩下的唯一的是实际构建以添加到帖子内容中的HTML。
>为了更好地翻译现成的文本,我们将使用_n函数选择为选择适当的文本,这是根据帖子上次更新以来的天数。然后,我们将以自己的div包装通知文本,以便以后可以对其进行样式。请随时将通知文本调整为自己喜欢。
>$通知变量现在应包含我们将插入帖子内容的标记。剩下的唯一要做的就是将其添加。
<span>object(DateInterval)#286 (8) { </span> <span>["y"]=> </span> <span>int(0) </span> <span>["m"]=> </span> <span>int(0) </span> <span>["d"]=> </span> <span>int(12) </span> <span>["h"]=> </span> <span>int(23) </span> <span>["i"]=> </span> <span>int(17) </span> <span>["s"]=> </span> <span>int(22) </span> <span>["invert"]=> </span> <span>int(0) </span> <span>["days"]=> </span> <span>int(12) </span> <span>}</span>>
作为回顾,这就是the_content方法outdated_notice_public最终应该看起来。
<span>if ( $date_diff->days > $days ) { </span> <span>$class = 'is-outdated'; </span> <span>} else { </span> <span>$class = 'is-fresh'; </span> <span>}</span>>
>尝试浏览几页,以查看我们的插件是否按预期工作。这是我在浏览url
<span>// Filter the text </span> <span>$notice = sprintf( </span> <span>_n( </span> <span>'This post was last updated %s day ago.', </span> <span>'This post was last updated %s days ago.', </span> <span>$date_diff->days, </span> <span>'outdated-notice' </span> <span>), </span> <span>$date_diff->days </span> <span>); </span> <span>// Add the class </span> <span>$notice = '<div >' . $notice . '</div>'; </span> <span>$notice = sprintf( $notice, $class );</span>
造型通知文本
>我们还需要两种不同的样式来表示后循环,这是.is fresh的一种样式,另一种是以上的。这个片段应该可以解决问题,为我们提供了一个不错的绿色配色方案,用于新的帖子,红色配色方案用于过时的帖子。
<span>if ( 'after' == $position ) { </span> <span>$post_content .= $notice; </span> <span>} else { </span> <span>$post_content = $notice . $post_content; </span> <span>}</span>>让我们刷新帖子视图,看看它的样式。新鲜和过时的帖子的示例:
改进
您需要首先从其GitHub存储库下载它。下载后,您可以重命名样板目录和文件以匹配插件的细节。样板的代码被充分发出,引导您将自定义代码放置在何处。请记住要更新主插件文件中的插件标头以反映您的插件的详细信息。 > wordpress插件样板的结构是什么? 插件的功能,通常会在“ Include”目录中为该功能创建一个新类。此类应定义您的功能需要运行的所有挂钩。然后,在主插件类中实例化此类,并将其添加到“运行”功能中。这种模块化方法使您可以轻松地添加,删除或修改插件中的功能。 >如何使用WordPress插件样板国际化插件?目录。此类将加载插件的文本域,从而将其翻译成其他语言。您只需要用插件的文本域替换样板中的占位符文本域。 > WordPress Plugin Bobilin Boblein包含一个UnInstall.php文件,该文件在从WordPress仪表板上卸载时运行时运行。该文件应包含任何清理代码,例如删除插件选项或数据库表。这样可以确保您的插件被卸载后不会留下任何痕迹。
就是这样!现在,我们基于WordPress插件样板开发了功能齐全的插件。
>根据我们到目前为止所做的事情,可以改进各种事情。其中包括:
>删除过时的notice-public.js脚本的起点。
> WordPress插件样板是什么,为什么重要?它提供了一个易于理解和使用的清晰一致的结构,尤其是对于WordPress插件开发的新开发人员而言。这很重要,因为它通过提供一个可靠的起点来节省时间和精力,从而减少了从头开始编写常见代码的需求。它还促进了插件的编码,增强性能,安全性和可维护性的最佳实践。>我如何开始使用WordPress插件样板?>我可以使用WordPress插件样板用于商业项目吗?
是的,WordPress plubin Boilerplate是开源的并在GPL下获得许可,这意味着您可以将其用于个人和商业项目。但是,最好在插件的文档或积分中确认样板。
>我如何为WordPress插件样板项目做出贡献?
如何使用WordPress插件样板处理插件选项? “管理”目录中的处理插件选项。此类包括用于注册设置,定义部分和字段以及渲染设置页面的功能。您可以扩展此类以处理插件的特定选项。
如何使用WordPress插入式样板?
用于在“管理员”和“公共”目录中制定脚本和样式。这些课程包括用于注册和启动您的脚本和样式的功能,确保它们在正确的位置和正确的时间加载。
>>如何使用WordPress插件样板清洁插件?
以上是WordPress插件样板第3部分:最后一步的详细内容。更多信息请关注PHP中文网其他相关文章!