0

0

确保可维护的WordPress元框:完成前端部分

PHPz

PHPz

发布时间:2023-08-27 23:33:11

|

1338人浏览过

|

来源于php中文网

原创

在本系列文章中,我们将回顾一些可用于构建更易于维护的 wordpress 插件的技巧和策略,并且我们将通过利用选项卡式元框的插件的上下文来实现这一切.

在上一篇文章中,我们专门为我们的选项卡实现了功能,并且还实现了第一个 textarea ,它将用于捕获一些用户输入。对于那些一直关注的人来说,您知道我们只做到了:

  • 使选项卡发挥作用
  • 引入用户可以与之交互的单个 UI 元素

我们尚未完成清理、验证和保存数据的实际过程,也没有费心介绍其余选项卡的内容。在接下来的两篇文章中,我们将正是这样做的。

具体来说,在本文中,我们将继续介绍用户界面的其余部分,然后我们将继续实际编写负责验证用户输入并将其与给定帖子关联的代码。

这些都摆在我们面前,让我们开始吧。

立即学习前端免费学习笔记(深入)”;

重新审视选项卡模板

如前所述,在上一篇文章中,我们在草稿选项卡中引入了 textarea。如果您一直在遵循教程和/或使用可用存储库中的代码,那么您应该会看到如下内容:

确保可维护的WordPress元框:完成前端部分确保可维护的WordPress元框:完成前端部分

草稿标签背后的想法很简单:用户可以在此处记下笔记、收集想法,并且基本上有一个记事本可以帮助他们收集想法在写帖子之前。

资源

资源s标签怎么样?此选项卡背后的想法是,用户将能够收集与他们想要编写的内容相关的页面、推文、图像和其他信息的各种 URL,以便他们可以在帖子中嵌入、链接和/或引用它们.

其工作原理如下:

  • 将有一个按钮允许用户添加其他字段

  • 单击按钮后,按钮上方将添加一个输入字段以捕获用户的输入。
  • 如果用户提供信息,则在保存帖子时也会保存该信息。
  • 如果用户未提供任何信息,则不会保存该信息。

就最后两项而言,我们将在下一篇文章中解决。现在,让我们来动态添加输入字段。

找到 admin/views/partials/resources.php 并将代码更新为如下所示:




接下来,我们在 admin/assets/js 中创建一个文件,并将其命名为 resources.js。删除该文件,使其如下所示:

(function( $ ) {
    'use strict';

	$(function() {
	
	});

})( jQuery );

接下来,我们需要设置一个事件处理程序,以便当用户点击添加资源按钮时,它会执行以下操作:

  1. 创建一个新的输入元素。
  2. 提供正确的 ID 和名称属性,以便可以序列化信息。
  3. 将其附加到现有的输入元素列表。

以下是完整注释的代码,说明如何实现此目的,并提供以下更多信息:

/**
 * Creates a new input element to be appended to the DOM that's used to represent a single
 * resource (be it an address, tweet, image URL, etc.) to be referenced in the post.
 *
 * @since    0.4.0
 * @param    object    $    A reference to the jQuery object
 * @return   object         An input element to be appended to the DOM.
 */
function createInputElement( $ ) {

    var $inputElement, iInputCount;

	/* First, count the number of input fields that already exist. This is how we're going to
	 * implement the name and ID attributes of the element.
	 */
	iInputCount = $( '#authors-commentary-resources' ).children().length;
	iInputCount++;

	// Next, create the actual input element and then return it to the caller
	$inputElement =
		$( '' )
			.attr( 'type', 'text' )
			.attr( 'name', 'authors-commentary-resource-' + iInputCount )
			.attr( 'id', 'authors-commentary-resource-' + iInputCount )
			.attr( 'value', '' );


	return $inputElement;


}

(function( $ ) {
	'use strict';

	$(function() {

		var $inputElement;

		$( '#authors-commentary-add-resource' ).on( 'click', function( evt ) {

			evt.preventDefault();

			/* Create a new input element that will be used to capture the users input
			 * and append it to the container just above this button.
			 */
			$( '#authors-commentary-resources' ).append ( createInputElement( $ ) );



		});

	});

})( jQuery );

在上面的代码中,有一个函数专门用于创建输入元素并使用预先存在的元素的数量来帮助为其提供唯一的名称和 ID。

还有一个 DOM 就绪处理程序,它设置一个函数,以便在用户点击添加资源按钮时触发。单击按钮时,将调用上述函数,然后将输入元素附加到父容器。

为了确保它看起来最好,我们需要编写一些样式。就像我们对 JavaScript 源代码所做的那样,找到 admin/assets/css/admin.css ,然后将以下代码添加到文件底部:

#authors-commentary-resources input[type="text"] {
    width:         100%;
    margin-bottom: 10px;
}

这将确保每个输入元素的宽度为 100%,以便它们各自位于自己的行上。

InsCode
InsCode

InsCode 是CSDN旗下的一个无需安装的编程、协作和分享社区

下载

最后,我们需要将用 WordPress 编写的 JavaScript 排入队列,以便它正确响应我们在部分中显示的元素。为此,请在 admin/class-authors-commentary.php 中找到 enqueue_admin_scripts 函数,并更新该函数,使其如下所示:

id ) {

		wp_enqueue_script(
			$this->name . '-tabs',
			plugin_dir_url( __FILE__ ) . 'authors-commentary/admin/assets/js/tabs.js',
			array( 'jquery' ),
			$this->version
		);

		wp_enqueue_script(
			$this->name . '-resources',
			plugin_dir_url( __FILE__ ) . 'authors-commentary/admin/assets/js/resources.js',
			array( 'jquery' ),
			$this->version
		);

	}

}

此时,您应该能够在浏览器中加载帖子编辑器,点击资源标签,然后开始向页面动态添加多个输入字段。

确保可维护的WordPress元框:完成前端部分

请记住,我们实际上还没有在服务器端执行任何操作,因此我们还没有进行清理、验证,或保存此信息。我们将在下一篇文章中执行此操作。

已发布

现在我们已经可以收集要在整个帖子中使用的各种注释和资源,那么已发布标签将包含哪些元素?

  • 它是否包含一个类似于草稿标签的区域,我们可以在其中留下自己的评论和注释?也许吧。
  • 是否包含一个位置来保存评论链接和其他有助于后续跟进的资源?
  • 也许它只包含帖子中所有评论的列表,以及指向所述评论的链接以及用于指示该评论是否已收到回复的复选框。

这三个内容都是完全可以接受的,可以引入到已发布标签中;但是,为了不重新发明轮子并继续引入新功能以及使用 WordPress API 的其他方式,我们将采用最终选项。

具体来说,我们将加载帖子中存在的所有评论的列表。每条评论旁边都会有一个复选框。如果评论已收到回复,则会进行查看;否则,它将被取消选中。

我们不会为此添加 pingback,因为作者通常不会回复 pingback。

话虽如此,加载 admin/views/partials/published.php 并添加以下代码:




请注意,我们正在调用一个名为 load_post_comments 的函数。由于我们还没有定义它,所以让我们跳到 admin/class-authors-commentary-meta-box.php 并添加以下代码:

 get_the_ID(),
	    'status'  => 'approve'
    );
    $comments = get_comments( $args );

    return $comments;

}

此函数将检索给定帖子的所有已批准评论的集合。上面列出的部分将遍历评论,然后创建一个标签和一个复选框,允许用户选择评论是否收到回复。

在标签下方,您会注意到评论作者和评论。这主要是为了轻松识别留下的评论。

最后,我们需要在样式表中添加一件事:

#author-commentary-comments label {
    font-weight: bold;
}

我们就完成了。

确保可维护的WordPress元框:完成前端部分

最终,您应该看到一个与上面看到的非常相似的屏幕。

移至服务器端

在下一篇文章中,我们将回到服务器端并开始编写代码,用于验证、清理、序列化和检索与我们刚刚创建的用户界面相关的所有代码。

同时,请记得查看 GitHub 上的代码(可在本文右侧找到),并随时在下面的提要中留下任何及所有问题和评论。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2697

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1665

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1527

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

974

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1443

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1509

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

Java JVM 原理与性能调优实战
Java JVM 原理与性能调优实战

本专题系统讲解 Java 虚拟机(JVM)的核心工作原理与性能调优方法,包括 JVM 内存结构、对象创建与回收流程、垃圾回收器(Serial、CMS、G1、ZGC)对比分析、常见内存泄漏与性能瓶颈排查,以及 JVM 参数调优与监控工具(jstat、jmap、jvisualvm)的实战使用。通过真实案例,帮助学习者掌握 Java 应用在生产环境中的性能分析与优化能力。

19

2026.01.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.3万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.2万人学习

Sass 教程
Sass 教程

共14课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号