首页 >CMS教程 >WordPress >WordPress插件样板第3部分:最后一步

WordPress插件样板第3部分:最后一步

Christopher Nolan
Christopher Nolan原创
2025-02-16 11:53:09225浏览

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