您想要实现的最好的解决方案是添加一个TinyMCE按钮,该按钮可以为您实现这一点,这本质上是为了让下一页功能对您的作者更加友好。这可能有点复杂,所以别客气。为了避免这个答案是一篇论文的长度,我在所有代码中添加了注释,以帮助您理解每个函数的作用,我强烈建议您阅读并彻底理解它们。
首先,在主题文件夹中,添加一个名为admin
并在其中创建文件class.new_tinymce_btn.php
带代码:
<?php
//class start
class add_new_tinymce_btn {
public $btn_arr;
public $js_file;
/*
* call the constructor and set class variables
* From the constructor call the functions via wordpress action/filter
*/
function __construct($seperator, $btn_name,$javascrip_location){
$this->btn_arr = array("Seperator"=>$seperator,"Name"=>$btn_name);
$this->js_file = $javascrip_location;
add_action(\'init\', array(&$this,\'add_tinymce_button\'));
add_filter( \'tiny_mce_version\', array(&$this,\'refresh_mce_version\'));
}
/*
* create the buttons only if the user has editing privs.
* If so we create the button and add it to the tinymce button array
*/
function add_tinymce_button() {
if ( ! current_user_can(\'edit_posts\') && ! current_user_can(\'edit_pages\') )
return;
if ( get_user_option(\'rich_editing\') == \'true\') {
//the function that adds the javascript
add_filter(\'mce_external_plugins\', array(&$this,\'add_new_tinymce_plugin\'));
//adds the button to the tinymce button array
add_filter(\'mce_buttons\', array(&$this,\'register_new_button\'));
}
}
/*
* add the new button to the tinymce array
*/
function register_new_button($buttons) {
array_push($buttons, $this->btn_arr["Seperator"],$this->btn_arr["Name"]);
return $buttons;
}
/*
* Call the javascript file that loads the
* instructions for the new button
*/
function add_new_tinymce_plugin($plugin_array) {
$plugin_array[$this->btn_arr[\'Name\']] = $this->js_file;
return $plugin_array;
}
/*
* This function tricks tinymce in thinking
* it needs to refresh the buttons
*/
function refresh_mce_version($ver) {
$ver += 3;
return $ver;
}
}//class end
?>
此代码将向可视化编辑器添加自定义按钮。
接下来,在主题文件夹中,创建这些文件夹adminjs/buttons
在里面,创建这个JS文件nextpage.js
带代码:
(function() {
tinymce.create(\'tinymce.plugins.nextpage\', {
init : function(ed, url) {
ed.addButton(\'nextpage\', {
title : \'Next Page Button\',
image : url+\'/images/btn_nextpage.png\',
onclick : function() {
var prompt_text = "<!--nextpage-->";
var caret = "caret_pos_holder";
var insert = "<p>" + prompt_text + " [next_page_button]</p> <span id="+caret+"></span>";
ed.execCommand(\'mceInsertContent\', false, insert);
ed.selection.select(ed.dom.select(\'span#caret_pos_holder\')[0]); //select the span
ed.dom.remove(ed.dom.select(\'span#caret_pos_holder\')[0]); //remove the span
}
});
},
createControl : function(n, cm) {
return null;
},
});
tinymce.PluginManager.add(\'nextpage\', tinymce.plugins.nextpage);
})();
您需要为按钮添加图像(
/images/btn_nextpage.png
). 上面的代码是一个非常简单的javascript函数,用于描述按下按钮时发生的情况。
现在,您需要通过将其添加到函数文件来加载此按钮类:
//load custom buttons class
require_once (TEMPLATEPATH . \'/admin/class.new_tinymce_btn.php\');
//create an instance of the class
$t = new add_new_tinymce_btn(\'|\',\'nextpage\',get_bloginfo(\'template_url\').\'/adminjs/buttons/nextpage.js\');
如果您在可视化编辑器中
<!--nextpage-->
是通过Javascript在html/文本中添加的,在您刷新或更新页面之前,它不会显示在视觉上。这当然会让您的用户感到困惑,因为在刷新之前,他们无法直观地看到分离的位置,因此,我添加了这个短代码
[next_page_button]
混合使用。单击该按钮时,将添加它。
所以你可能会问,它有什么作用?好吧,让我们来确定一下。在函数中添加此代码:
function christine_post_next_page_button() {
return \'\';
}
add_shortcode(\'next_page_button\', \'chrstine_post_next_page_button\');
注意
return \'\'
. 确实如此
nothing! 因此,为用户添加一个可视的单独代码只是一个虚拟的短代码。