在 N 年前,我寫了一片教程:WordPress 添加投稿功能,這篇教程目前的點擊率已經快接近 9000 了,算是筆者博客最火的一篇文章了。這篇教程從發佈到現在,不知道改過多少遍了,也不斷收到讀者各方面的需求,我也在留言中給他們一一回復了,所以文章中找不到你想要的東西,可以看看留言。

鑑於留言中我已經給很多讀者指導怎麼修改代碼,如果現在再去修改文章中的代碼,勢必會導致代碼所在行數的變化,等於毀了我之前給讀者的所有回覆。最近一段時間,我將再寫幾篇文章,告訴你怎麼增強這個投稿功能。今天要講的是如何給這個投稿功能添加一個富文本編輯器 (也包括了圖片上傳功能),原來的代碼只能實現一個簡單的純文本輸入框,對於投稿者的輸入體驗不太好。

一、下載 KindEditor

這裏我們將使用 KindEditor 來作為我們的編輯器,點此下載 KindEditor 。下載後解壓,將文件夾重命名為 kindeditor,放到你當前主題文件夾下。

二、修改 HTML 頁面

打開 WordPress 添加投稿功能,下面我們將對這篇文章中的代碼進行修改。

將代碼一中第 41 行的</form> 改成:

</form>
<script charset="utf-8" src="<?php%20bloginfo('template_url');%20?>/kindeditor/kindeditor-min.js"></script>
<script charset="utf-8" src="<?php%20bloginfo('template_url');%20?>/kindeditor/lang/zh_CN.js"></script>
<script>
/* 編輯器初始化代碼 start */
    var editor;
    KindEditor.ready(function(K) {
        editor = K.create('#tougao_content', {
        resizeType : 1,
        allowPreviewEmoticons : false,
        allowImageUpload : true, /* 開啓圖片上傳功能,不需要就將 true 改成 false */
        items : [
            'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold', 'italic', 'underline',
            'removeformat', '|', 'justifyleft', 'justifycenter', 'justifyright', 'insertorderedlist',
            'insertunorderedlist', '|', 'emoticons', 'image', 'link']
        });
    });
/* 編輯器初始化代碼 end */
</script>

三、 php 代碼小修改

代碼二第 37 行代碼改成:

$content =  isset( $_POST['tougao_content'] ) ? trim($_POST['tougao_content']) : '';
$content = str_ireplace('?>', '?&gt;', $content);
$content = str_ireplace('<?', '&lt;?', $content);
$content = str_ireplace('<script', '&lt;script', $content);
$content = str_ireplace('<a ', '<a rel="external nofollow" ', $content);

四、自定義編輯器功能

經過以上三步的修改,目前你的編輯器就可以正常使用了。但是對不同人來説,他們的需求可能不太一樣,有人可能會覺得上面的編輯器太過簡單。那麼怎樣自定義編輯器的功能呢?這裏我就不講編程了,簡單點就找編輯器自帶的樣例來説就行了。

我們下載的 kindeditor 目錄下有個 examples 文件夾,這裏是部分演示,雙擊打開 index.html 可以看到所有演示。你是否看中某個演示呢?那就用文本編輯器打開它的 html 文件,查看裏面的代碼。這些 html 文件的代碼中都可以看到類似代碼:

<script charset="utf-8" src="../kindeditor-min.js"></script>
<script charset="utf-8" src="../lang/zh_CN.js"></script>
<script>
    ... 編輯器初始化代碼
</script>

編輯器初始化代碼那部分代碼替換第三步中的編輯器初始化代碼,然後將 'textarea[name="content"]' ,改成 '#tougao_content'即可。

好了,添加個編輯器就是這麼簡單。如果你會編程,或者懂看文檔,動手能力強,可以看看 KindEditor 的文檔,自己動手玩玩:KindEditor 文檔。