好的,在黑暗中进行了一系列刺伤之后,我成功地向外观>>标题管理屏幕添加了一个链接:当单击该链接时,会触发jquery。调用主插件文件中的函数的post()ajax请求。为了不泄露我的秘密插件功能,我将分享一个基本示例;)
第一部分是在管理屏幕中获取链接。最初我认为可能有一种wordpress方法可以做到这一点,但当我使用add\\u theme\\u support()“admin head callback”激活自定义标题功能时,我最终使用jquery来编写链接。其工作原理如下:
add_theme_support(\'custom-header\', array(
\'default-image\' => get_template_directory_uri() . \'/images/headers/shore.jpg\',
\'width\' => 1000,
\'height\' => 288,
\'header-text\' => false,
\'uploads\' => true,
\'admin-head-callback\' => \'customThemeSetup_admin_header\' // run callback function in admin head of custom header screen
));
接下来,我必须创建上述回调函数,并使其添加一个jquery脚本,将锚定链接写入自定义标题管理屏幕。该链接使用JQuery的。向wordpress发送请求的post()方法:
function customThemeSetup_admin_header()
{
$myPluginFile = plugin_dir_path(__DIR__);
<script type="text/javascript" charset="utf-8">
jQuery(document).ready(function($){
$(\'.available-headers:last\').append("<a id=\'testLink\' href=\'#\'>Trigger plugin function with AJAX</a>");
$(\'#testLink\').click(function(e){
e.preventDefault();
$.post(ajaxurl, {
action: \'test_ajax\' // the action for triggering plugin function will be wp_ajax_test_ajax
}, function(response, status){
if(status == "success")
{
alert(response);// returns text in die() at the end of my plugin function(...next step)
}
});
});
});
</script>
}
最后,当wordpress检测到上面的ajax请求时,我需要告诉它运行我的插件函数:“test\\uAjax”。看起来是这样的:
add_action(\'wp_ajax_test_ajax\', \'testAjax\');// when wordpress detects the action wp_ajax_test_ajax, it will trigger my plugin function testAjax() below
function testAjax()
{
die("Function triggered with AJAX!");// text sent back to alert(response) from previous step
}
我可以看出,我没有得到帮助的原因是,这个过程比我最初想象的要广泛:但希望这能在将来帮助其他人。请随时提出建议,或添加任何修改,因为这是我第一次做这样的事情。