在 WordPress 中安装 Editor
最近有几个论坛问题询问如何在 WordPress 网站内配置 DataTables 或 Editor。这篇博客文章提供了一个简单的演示,以便让你快速在网页上让 DataTables 和 Editor 投入使用。在这个演示中,我们将展示如何使用两种不同的方法在 WordPress 中安装 DataTables
- 为了进行精细控制而直接包含脚本
- TablePress - Tobias Bäthge 开发的一款适用于 WordPress 的插件,可用于创建完全集成的 DataTables/WordPress 编辑环境。
我们还讨论了如何使用直接包含的方式来安装和配置 Editor。
WordPress 安装
第一步是安装并配置 WordPress。你可以通过两种方式管理 WordPress 网站 - 你可以将其自托管在你的服务器上,或者让 WordPress 处理托管事宜。
如果你进行自托管,则拥有全部控制权。你获得了访问文件系统的权限,你可以使用 SSH 登录和移动文件,还可以添加和删除软件包。这意味着 DataTables 和 Editor 能够轻松部署。
WordPress 托管网站处于锁定状态。免费版本禁用了插件安装,并且阻止任何脚本运行 - 这意味着 DataTables 和 Editor 无法正常运行!如果你订阅了一个套餐,则可以安装允许使用页眉和页脚的插件,并且可以添加代码,但是你无法访问基础文件系统。这意味着,尽管尚未经过测试,但 DataTables 能够在这个环境中使用。Editor 需要访问其 Javascript 文件,因此只要这些文件可以托管在可访问的远程服务器上,这也可以行得通。
简而言之,如果你想要 DataTables,则需要使用付费套餐在 WordPress 上托管,或者需要进行自托管。如果你想要 Editor,则需要使用某个付费套餐才能访问远程服务器以托管 Javascript 文件,或者需要进行自托管。
顺带一提,对于那些有技术好奇心的人来说,我在一个托管在 Vagrant 管理的 Fedora 29 服务器上进行自托管。安装相当轻松 - 我使用了 来自 MangoLassi.it 的这些极好的说明。我还运行了一个个人域,该域托管在一个 cPanel 服务器上,在该服务器上安装 WordPress 也很简单。
配置 DataTables
TablePress
向你的网站添加数据表的最简单方法是安装Tobias Bäthge 的 TablePress WordPress 插件。你可以使用一个易于使用的表单来定义表格,该表格会生成一个简码,该简码可以添加到任何文章或页面中。所有必需的 Javascript 和 CSS 文件都嵌入在该简码中,因此非常易于使用。
手动方法
如果你想要更高级的控制,则可以手动添加表格和必需的脚本。DataTables 是开源的 CDN 托管软件,因此你只需在 CDN 中引用那些文件(或者如果你愿意,下载一个副本进行自托管)。安装一个插件,例如页眉和页脚脚本,这样你就可以向页眉或页脚添加脚本和 CSS。
要在页面或帖子中插入表格和 DataTables 代码,请添加一个自定义 HTML区块并直接输入/粘贴表格的 HTML。对于一个最简单的表格而言,类似以下内容
<table id="example" class="display" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>Garrett Winters</td>
<td>Director</td>
<td>Edinburgh</td>
<td>63</td>
<td>2011/07/25</td>
<td>$5,300</td>
</tr>
</tbody>
</table>
然后,在该页面的底部,将必要的脚本和样式包含在头部。
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<link href="https://cdn.datatables.net/1.12.1/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css">
<script src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js"></script>
<script>
$(document).ready( function () {
$('#example').DataTable();
} );
</script>
配置编辑器
在使用编辑器之前,需要将分发文件复制到服务器。可以创建包含所有必要文件的分发,方法为使用 生成器 或 下载页面。这已在 手册 中说明,因此此处不再重复。我将 PHP 代码库安装到 web 服务器的一个子目录(‘/Editor’)中。
WordPress 使用 MariaDB 或 MySQL 作为其数据库。为避免安装第二个数据库,我创建了一个专门用于 DataTables 数据的附加数据库 - 这使用了相同的数据库凭证(用户名和密码)。编辑器被配置为通过更新文件 Editor/lib/config.php
来使用这个新数据库。此过程在 编辑器手册 中进行了解释。这是我在 config.php 文件中的数据库设置
$sql_details = array(
"type" => "Mysql", // MariaDB === MySQL
"user" => "sa", // database user (from WP install)
"pass" => "Pa55word123", // database password (from WP install)
"host" => "localhost",
"port" => "",
"db" => "datatables", // database created for DataTables
"dsn" => "",
"pdoAttr" => array()
);
我使用 DataTables 演示数据加载了数据库 - 可以在 Editor 下载的 examples/sql
目录中找到 SQL 脚本。
部署分发后,启动数据库,然后通过像之前一样添加 TablePress 简码或自定义 HTML区块即可插入表格。
<table id="example" class="display" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</tfoot>
<tbody>
</tbody>
</table>
然后,像之前一样,在页面的底部,在头部部分插入脚本和样式。注意编辑器文件路径 - 它们位于 WordPress 网站内。生成器将所有 DataTables 脚本合并成一个 CDN include - 如果你希望减少网站的依赖项,它们可以位于服务器本地。
请注意,如果你正在使用 TablePress 简码,则表格的 ID 是 tablepress-#
,其中“#”是表格编号。只需用 TablePress ID 替换以下代码中的 example
。
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/jqc-1.12.4/moment-2.18.1/dt-1.12.1/b-2.2.3/sl-1.4.0/datatables.min.css">
<link rel="stylesheet" type="text/css" href="/Editor/css/editor.dataTables.min.css">
<script type="text/javascript" charset="utf-8" src="https://cdn.datatables.net/v/dt/jqc-1.12.4/moment-2.18.1/dt-1.12.1/b-2.2.3/sl-1.4.0/datatables.min.js"></script>
<script type="text/javascript" charset="utf-8" src="/Editor/js/dataTables.editor.min.js"></script>
<script>
$(document).ready( function () {
var editor = new $.fn.dataTable.Editor( {
ajax: "/Editor/controllers/staff.php",
table: "#example",
fields: [ {
label: "First name:",
name: "first_name"
}, {
label: "Last name:",
name: "last_name"
}, {
label: "Position:",
name: "position"
}, {
label: "Office:",
name: "office"
}, {
label: "Extension:",
name: "extn"
}, {
label: "Start date:",
name: "start_date",
type: "datetime"
}, {
label: "Salary:",
name: "salary"
}
]
} );
$('#example').DataTable( {
dom: "Bfrtip",
ajax: "/Editor/controllers/staff.php",
columns: [
{ data: null, render: function ( data, type, row ) {
return data.first_name+' '+data.last_name;
} },
{ data: "position" },
{ data: "office" },
{ data: "extn" },
{ data: "start_date" },
{ data: "salary", render: $.fn.dataTable.render.number( ',', '.', 0, '$' ) }
],
select: true,
buttons: [
{ extend: "create", editor: editor },
{ extend: "edit", editor: editor },
{ extend: "remove", editor: editor }
]
} );
} );
</script>
就是这样!我希望这对你有所帮助。如果你有任何意见,请在下面发表。