我有点小问题,需要你的帮助。我的页面上有选项卡,其中一个选项卡上有谷歌地图。默认情况下,此选项卡是隐藏的,当我点击它时,我只能看到一小块地图。映射它是一个已安装插件的短代码。我找到了如何运行ajax请求的解决方案(here) 在单击后加载内容,看起来可以很好地处理简单的html代码,但当我尝试将php代码与短代码放在一起时,它不起作用。我认为这很简单,但我的知识太少,无法编写工作代码:(
<script type="text/javascript">
jQuery(document).ready(function($) {
$(\'#map\').on(\'click\',function() {
var data = {
action: \'process_shortcode_on_tab_click\'
}
$.post(\'/wp-admin/admin-ajax.php\',data).done(function(response) {
$(\'#map-containter\').html(\'<?php echo do_shortcode("[map_shortcode height=\'300\']"); ?>\');
});
})
})
<div class="tabs">
<a class="tab active" href="#">Tab 1</a>
<a class="tab" href="#">Tab 2</a>
<a id="map" class="tab" href="#">Tab with map</a>
在我的主题函数中,我有:
add_action( \'wp_ajax_process_shortcode_on_tab_click_action\', \'process_shortcode_on_tab_click_ajax\');
add_action( \'wp_ajax_nopriv_process_shortcode_on_tab_click_action\', \'process_shortcode_on_tab_click_ajax\');
function process_shortcode_on_tab_click_ajax() {
echo do_shortcode(\'[map_shortcode height="300"]\');
die();
}
最合适的回答,由SO网友:birgire 整理而成
您应该尝试替换以下jQuery部件:
action: \'process_shortcode_on_tab_click\'
使用此选项:
action: \'process_shortcode_on_tab_click_action\'
与您的
wp_ajax_process_shortcode_on_tab_click_action
和
wp_ajax_nopriv_process_shortcode_on_tab_click_action
行动。
例如,检查Codex 关于如何命名自定义项wp_ajax_$youraction
钩