如何使用AJAX在单击后运行快捷代码

时间:2014-07-07 作者:Artus2000

我有点小问题,需要你的帮助。我的页面上有选项卡,其中一个选项卡上有谷歌地图。默认情况下,此选项卡是隐藏的,当我点击它时,我只能看到一小块地图。映射它是一个已安装插件的短代码。我找到了如何运行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();
}

1 个回复
最合适的回答,由SO网友:birgire 整理而成

您应该尝试替换以下jQuery部件:

 action: \'process_shortcode_on_tab_click\'
使用此选项:

 action: \'process_shortcode_on_tab_click_action\'
与您的wp_ajax_process_shortcode_on_tab_click_actionwp_ajax_nopriv_process_shortcode_on_tab_click_action 行动。

例如,检查Codex 关于如何命名自定义项wp_ajax_$youraction

结束

相关推荐

Call Shortcode on wp_footer

是否可以在帖子/页面内容区域之外调用快捷码?我试图用以下代码将其添加到wp\\U页脚,但它返回字符串:add_shortcode(\'eps_pop\', \'init\'); function indtable_display_front_end($atts ) { global $post; extract( shortcode_atts( array( \'id\' => \'\' ), $atts ) );&#x