我调用用于开发的metabox类中的链接对话框。这有点老套,但可以做到,直到更多robust 已开发。
您可以通过首先Enquence所需的js,然后与wp link js files方法交互来调用链接框。
确保已将wp链接排入队列
1个/wp_enqueue_script( \'wp-link\' );
2/设置ui。我通常使用一个按钮来调用链接对话框,并使用一个文本字段来处理链接URL。
3/调用链接对话
var _link_sideload = false; //used to track whether or not the link dialogue actually existed on this page, ie was wp_editor invoked.
var link_btn = (function($){
\'use strict\';
var _link_sideload = false; //used to track whether or not the link dialogue actually existed on this page, ie was wp_editor invoked.
/* PRIVATE METHODS
-------------------------------------------------------------- */
//add event listeners
function _init() {
$(\'body\').on(\'click\', \'.lm-link-button\', function(event) {
_addLinkListeners();
_link_sideload = false;
var link_val_container = $(\'#your_input_field\');
if ( typeof wpActiveEditor != \'undefined\') {
wpLink.open();
wpLink.textarea = $(link_val_container);
} else {
window.wpActiveEditor = true;
_link_sideload = true;
wpLink.open();
wpLink.textarea = $(link_val_container);
}
return false;
});
}
/* LINK EDITOR EVENT HACKS
-------------------------------------------------------------- */
function _addLinkListeners() {
$(\'body\').on(\'click\', \'#wp-link-submit\', function(event) {
var linkAtts = wpLink.getAttrs();
var link_val_container = $(\'#your_input_field\');
link_val_container.val(linkAtts.href);
_removeLinkListeners();
return false;
});
$(\'body\').on(\'click\', \'#wp-link-cancel\', function(event) {
_removeLinkListeners();
return false;
});
}
function _removeLinkListeners() {
if(_link_sideload){
if ( typeof wpActiveEditor != \'undefined\') {
wpActiveEditor = undefined;
}
}
wpLink.close();
wpLink.textarea = $(\'html\');//focus on document
$(\'body\').off(\'click\', \'#wp-link-submit\');
$(\'body\').off(\'click\', \'#wp-link-cancel\');
}
/* PUBLIC ACCESSOR METHODS
-------------------------------------------------------------- */
return {
init: _init,
};
})(jQuery);
// Initialise
jQuery(document).ready(function($){
\'use strict\';
link_btn.init();
});
4//将脚本排队。将以下内容添加到函数中。php文件,并根据需要调整文件名/路径。
function linkbtn_enqueue() {
//register script
wp_register_script(\'link_btn\',get_template_directory_uri() . \'/js/link_btn.js\', array(\'jquery\'), \'1.0\', true);
//now load it
wp_enqueue_script( \'link_btn\');
}
add_action( \'admin_enqueue_scripts\', \'linkbtn_enqueue\' );
应该这样做。我在我的metabox类中使用了相同的方法,它似乎工作正常。