WordPress插件样板第3部分:最后一步
钥匙要点
- > WordPress插件样板系列的第三部分重点是实现插件的公共面向功能,其中包括检索用户首选项并在其单个帖子视图上相应地显示通知。 >
- >指南说明了如何准备测试主题,如何将其连接到the_content过滤器中,如何有条件地修改内容以及如何计算当前时间和帖子最后修改时间之间的差异。 还讨论了
- 造型通知文本,作者提供了一个简单的样式指南,以匹配整体主题设计。作者还提出了潜在的改进,例如针对不同上下文的动态文本和可忽视的通知。 >
- 作者结束了结论,突出显示WordPress插件样板的好处,指出其清晰的结构,遵守最佳实践以及为插件开发具有可靠的起点的节省时间的方面。 在本系列的第二部分中,我们为插件准备了简单的管理功能。我们为用户提供了一个选项页面,他们可以根据他们的首选项调整插件。
如果您错过了第1部分和第2部分,请在下面找到它们:
>> WordPress插件样板第1部分:使用WordPress插件板
- 加速开发
- > WordPress插件样板第2部分:开发WordPress插件
- 在本文中,我们将实现插件的公开功能。这意味着我们将检索用户的偏好,确定该特定帖子是否过时,并在其单个帖子视图上相应地显示通知。让我们开始!
我们需要准备主题,以便以后可以对其进行测试。我们将使用WordPress默认运输的二十五个主题。我们将使用主题审核团队提供的主题单元测试数据来填充帖子。
>我们需要下载上述法典页面上提供的主题单位test-data.xml,并将其导入我们的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核心使用,所以我们需要谨慎地将我们的自定义内容插入其中。
>>我们需要确保只有在显示单个帖子而不在博客文章索引上插入过时的通知文本。为了做到这一点,我们可以使用IS_MAIN_QUERY函数过滤它。只要我们需要确定运行查询是主要的还是辅助/自定义查询。
我们需要考虑的另一件事是,我们将仅显示帖子类型帖子的单个视图的通知文本,因此is_singular('post')验证将非常适合工作。>
这是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>
>
<span>$position = get_option( 'outdated_notice_position', 'before' ); </span> <span>$days = (int) get_option( 'outdated_notice_day', 0 );</span>
<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>
>为了更好地翻译现成的文本,我们将使用_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>
造型通知文本

>
>打开公共/CSS文件夹中包含的过时的notice-public.css文件,并添加此规则。
>我们还需要两种不同的样式来表示后循环,这是.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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

博客是人们在网上表达观点、意见和见解的理想平台。许多新手渴望建立自己的网站,却因担心技术障碍或成本问题而犹豫不决。然而,随着平台不断发展以满足初学者的能力和需求,现在开始变得比以往任何时候都更容易。 本文将逐步指导您如何建立一个WordPress博客,从主题选择到使用插件提升安全性和性能,助您轻松创建自己的网站。 选择博客主题和方向 在购买域名或注册主机之前,最好先确定您计划涵盖的主题。个人网站可以围绕旅行、烹饪、产品评论、音乐或任何激发您兴趣的爱好展开。专注于您真正感兴趣的领域可以鼓励持续写作

有四种方法可以调整 WordPress 文章列表:使用主题选项、使用插件(如 Post Types Order、WP Post List、Boxy Stuff)、使用代码(在 functions.php 文件中添加设置)或直接修改 WordPress 数据库。

您想了解如何在父分类存档页面上显示子分类吗?在自定义分类存档页面时,您可能需要执行此操作,以使其对访问者更有用。在本文中,我们将向您展示如何在父分类存档页面上轻松显示子分类。为什么在父分类存档页面上显示子分类?通过在父分类存档页面上显示所有子分类,您可以使其不那么通用,对访问者更有用。例如,如果您运行一个关于书籍的WordPress博客,并且有一个名为“主题”的分类法,那么您可以添加“小说”、“非小说”等子分类法,以便您的读者可以

最近,我们向您展示了如何通过允许用户将自己喜欢的帖子保存在个性化库中来为用户创建个性化体验。您可以通过在某些地方(即欢迎屏幕)使用他们的名字,将个性化结果提升到另一个水平。幸运的是,WordPress使获取登录用户的信息变得非常容易。在本文中,我们将向您展示如何检索与当前登录用户相关的信息。我们将利用get_currentuserinfo(); 功能。这可以在主题中的任何地方使用(页眉、页脚、侧边栏、页面模板等)。为了使其工作,用户必须登录。因此我们需要使用

WordPress对初学者来说容易上手。1.登录后台后,用户界面直观,简洁的仪表板提供所有必要功能链接。2.基本操作包括创建和编辑内容,所见即所得的编辑器简化了内容创建。3.初学者可以通过插件和主题扩展网站功能,学习曲线存在但可以通过实践掌握。

过去,我们分享过如何使用PostExpirator插件使WordPress中的帖子过期。好吧,在创建活动列表网站时,我们发现这个插件非常有用。我们可以轻松删除过期的活动列表。其次,多亏了这个插件,按帖子过期日期对帖子进行排序也非常容易。在本文中,我们将向您展示如何在WordPress中按帖子过期日期对帖子进行排序。更新了代码以反映插件中更改自定义字段名称的更改。感谢Tajim在评论中让我们知道。在我们的特定项目中,我们将事件作为自定义帖子类型。现在

我们的一位用户询问其他网站如何在页脚中显示查询数量和页面加载时间。您经常会在网站的页脚中看到这一点,它可能会显示类似以下内容:“1.248秒内64个查询”。在本文中,我们将向您展示如何在WordPress中显示查询数量和页面加载时间。只需将以下代码粘贴到主题文件中您喜欢的任何位置(例如footer.php)。queriesin

您是否正在寻找自动化 WordPress 网站和社交媒体帐户的方法? 通过自动化,您将能够在 Facebook、Twitter、LinkedIn、Instagram 等平台上自动分享您的 WordPress 博客文章或更新。 在本文中,我们将向您展示如何使用 IFTTT、Zapier 和 Uncanny Automator 轻松实现 WordPress 和社交媒体的自动化。 为什么要自动化 WordPress 和社交媒体? 自动化您的WordPre
