搜索
首页CMS教程WordPressWordPress插件样板第3部分:最后一步

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插件样板第3部分:最后一步

这是默认的WordPress导入页面,因此我们需要选择先前下载的theme-unit-test-data.xml,然后单击“上传文件和导入”按钮。

然后将显示第二个屏幕。不必担心“分配作者”部分,因为我们可以将其作为默认情况。在“导入附件”部分中,请确保勾选复选框“下载和导入文件附件”,以便将所有外部附件都下载并导入到媒体库中。> WordPress插件样板第3部分:最后一步>按“提交”按钮,然后等到成功完成导入过程。

现在,我们准备编写显示我们通知的代码。

>

挂接到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>
$ $ 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 /2015/05/11/hello-world/。
<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>

造型通知文本

WordPress插件样板第3部分:最后一步>我们将在.outdated Notice Div上应用一些简单的样式,这些样式与整体主题设计良好,而不会侵入。为了做到这一点,对于已经使用的字体尺寸或字体系列,我们不会更改任何内容。另外,我们将暂时借用Bootstrap配色方案和样式。

>

>打开公共/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>
>让我们刷新帖子视图,看看它的样式。新鲜和过时的帖子的示例:

WordPress插件样板第3部分:最后一步 WordPress插件样板第3部分:最后一步 就是这样!现在,我们基于WordPress插件样板开发了功能齐全的插件。>

改进

>根据我们到目前为止所做的事情,可以改进各种事情。其中包括:

不同上下文的动态文本,我们可以在其中使用不同的文本进行过时的通知。>
    >删除过时的notice-public.js脚本的起点。
  • 可忽略的通知,以便在阅读帖子时不会中断用户体验。
  • 结论
  • WordPress插件样板提供了一个完美的起点,可以从头开始开发任何插件。在该系列的最后一部分中,我们通过开发插件的公开功能来完成。修改虽然很简单,但在很少的时间内完成,同时仍保持样板本身确定的OOP模式并遵守标准和最佳实践。
  • >代码的完整副本像往常一样在第3部分分支的GitHub上获得。
  • >关于WordPress插件样板的常见问题(常见问题解答)
> WordPress插件样板是什么,为什么重要?它提供了一个易于理解和使用的清晰一致的结构,尤其是对于WordPress插件开发的新开发人员而言。这很重要,因为它通过提供一个可靠的起点来节省时间和精力,从而减少了从头开始编写常见代码的需求。它还促进了插件的编码,增强性能,安全性和可维护性的最佳实践。

>我如何开始使用WordPress插件样板?

>

您需要首先从其GitHub存储库下载它。下载后,您可以重命名样板目录和文件以匹配插件的细节。样板的代码被充分发出,引导您将自定义代码放置在何处。请记住要更新主插件文件中的插件标头以反映您的插件的详细信息。

>我可以使用WordPress插件样板用于商业项目吗?

是的,WordPress plubin Boilerplate是开源的并在GPL下获得许可,这意味着您可以将其用于个人和商业项目。但是,最好在插件的文档或积分中确认样板。

>我如何为WordPress插件样板项目做出贡献?>

> wordpress插件样板的结构是什么? WordPress插件样板板遵循特定的结构,该结构旨在保持您的代码组织。可管理。它由三个主要目录组成:“管理员”,“包括”和“公共”。 “ Admin”目录包含插件特定侧面的CSS,JavaScript和PHP文件。 “ Inclusth”目录用于定义核心插件类和其他共享功能。 “ public”目录包含插件面向公共面的文件。

如何使用WordPress插件blobin blogin blogin?

插件的功能,通常会在“ Include”目录中为该功能创建一个新类。此类应定义您的功能需要运行的所有挂钩。然后,在主插件类中实例化此类,并将其添加到“运行”功能中。这种模块化方法使您可以轻松地添加,删除或修改插件中的功能。

如何使用WordPress插件样板处理插件选项? “管理”目录中的处理插件选项。此类包括用于注册设置,定义部分和字段以及渲染设置页面的功能。您可以扩展此类以处理插件的特定选项。

>如何使用WordPress插件样板国际化插件?目录。此类将加载插件的文本域,从而将其翻译成其他语言。您只需要用插件的文本域替换样板中的占位符文本域。

如何使用WordPress插入式样板?

用于在“管理员”和“公共”目录中制定脚本和样式。这些课程包括用于注册和启动您的脚本和样式的功能,确保它们在正确的位置和正确的时间加载。

>

>如何使用WordPress插件样板清洁插件?

> WordPress Plugin Bobilin Boblein包含一个UnInstall.php文件,该文件在从WordPress仪表板上卸载时运行时运行。该文件应包含任何清理代码,例如删除插件选项或数据库表。这样可以确保您的插件被卸载后不会留下任何痕迹。

>

以上是WordPress插件样板第3部分:最后一步的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
WordPress的插件生态系统如何增强其CMS功能?WordPress的插件生态系统如何增强其CMS功能?May 14, 2025 am 12:20 AM

WordPressPluginsscmscmscapabilities byferingCustomization和Functionality.1)超过50,000pluginsallowuserstalostailortheortheortheortheirsiteirsiteforseo,e-Commerce和security.2)pluginScaneCanextendCorefeatures,likeaddingcustostostposttypes.3 bullycanc.3)

WordPress适合电子商务吗?WordPress适合电子商务吗?May 13, 2025 am 12:05 AM

是的,WordPress非常适合做电商。 1)通过WooCommerce插件,WordPress可以快速变成功能全面的在线商店。 2)需要关注性能优化和安全性,定期更新和使用缓存、安全插件是关键。 3)WordPress提供了丰富的定制选项,提升用户体验和SEO优化效果显着。

如何在 Yandex 网站管理员工具中添加您的 WordPress 网站如何在 Yandex 网站管理员工具中添加您的 WordPress 网站May 12, 2025 pm 09:06 PM

您想将您的网站连接到Yandex网站管理员工具吗?Google搜索控制台、Bing和Yandex等网站管理员工具可帮助您优化网站、监控流量、管理robots.txt、检查网站错误等。在本文中,我们将分享如何在Yandex网站管理员工具中添加您的WordPress网站来监控您的搜索引擎流量。什么是Yandex?Yandex是一个位于俄罗斯的流行搜索引擎,类似于Google和Bing。您可以在Yandex中优

如何修复 WordPress 中的 HTTP 图片上传错误(简单)如何修复 WordPress 中的 HTTP 图片上传错误(简单)May 12, 2025 pm 09:03 PM

您需要修复WordPress中的HTTP图片上传错误吗?当您在WordPress中创建内容时,此错误可能会特别令人沮丧。当您使用内置WordPress媒体库将图像或其他文件上传到CMS时,通常会发生这种情况。在本文中,我们将向您展示如何轻松修复WordPress中的HTTP图片上传错误。WordPress媒体上传过程中出现HTTP错误的原因是什么?当您尝试使用WordPress媒体上传器将文件上传到Wo

如何修复添加媒体按钮在 WordPress 中不起作用的问题如何修复添加媒体按钮在 WordPress 中不起作用的问题May 12, 2025 pm 09:00 PM

最近,我们的一位读者报告说,他们的WordPress网站上的“添加媒体”按钮突然停止工作。此经典编辑器问题不会显示任何错误或警告,这使用户不知道为什么他们的“添加媒体”按钮不起作用。在本文中,我们将向您展示如何轻松修复WordPress中的“添加媒体”按钮不起作用的问题。是什么导致WordPress“添加媒体”按钮停止工作?如果您仍在使用旧的经典WordPress编辑器,那么“添加媒体”按钮允许您将图像、视频等插入博客文章中。

如何设置、获取和删除 WordPress Cookie(像专业人士一样)如何设置、获取和删除 WordPress Cookie(像专业人士一样)May 12, 2025 pm 08:57 PM

您想了解如何在WordPress网站上使用cookie吗?Cookie是在用户浏览器中存储临时信息的有用工具。您可以使用此信息通过个性化和行为定位来增强用户体验。在本终极指南中,我们将向您展示如何像专业人士一样设置、获取和删除WordPresscookie。注意:这是一个高级教程。它要求您精通HTML、CSS、WordPress网站和PHP。什么是Cookie?Cookie是用户访问网站时创建并存储在用户浏览

如何修复 WordPress 429 请求过多错误如何修复 WordPress 429 请求过多错误May 12, 2025 pm 08:54 PM

您是否在WordPress网站上看到“429请求过多”错误?此错误消息意味着用户向您网站的服务器发送了太多HTTP请求。此错误可能会非常令人沮丧,因为很难找出导致该错误的原因。在本文中,我们将向您展示如何轻松修复“WordPress429TooManyRequests”错误。是什么原因导致WordPress429请求过多错误?“429TooManyRequests”错误的最常见原因是用户、机器人或脚本尝试向网站

WordPress作为大型网站的CMS有多可扩展?WordPress作为大型网站的CMS有多可扩展?May 12, 2025 am 12:08 AM

WordPressCanHandLeLArgeWebsitesWithCareFulplanningAndOptimization.1)USECACHINGTOREDUCESERVERVERLOAD.2)优化YourdataBaseRegularly.3)actizeyourdatabaseregularly.3)ackdntododistibutecontent.4))

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

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

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能