检测上次运行快捷码的时间

时间:2013-04-30 作者:Jules

我想知道,鉴于以下代码:

add_shortcode( $tag , $func );

是否有一个钩子我可以使用,它总是在最后一次之后被调用$func 打过电话,但很快,所以我仍然可以打电话wp_localize_script()?

WP功能参考:add_shortcode, wp_localize_script

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

不确定最后一次是什么时候,但您可以劫持每个短代码和任何一个调用wp_localize_script() 此处或注册操作wp_footer 运行时间早于页脚脚本处理程序的。

比如说,这是原文:

add_shortcode( \'foo\', \'original_function\' );
现在,您可以使用以下内容覆盖它:

add_shortcode( \'foo\', \'new_function\' );

function new_function( $atts, $content = \'\', $shortcode_name )
{
    wp_localize_script( \'my_handle\', $data );

    // alternative: register a callback for wp_footer
    add_action( \'wp_footer\', \'localize_my_script\', -2 );

    return original_function( $atts, $content = \'\', $shortcode_name );
}
相关,有一个较长的示例:Use AJAX in shortcode

更新以响应您的评论

捕获gallery 短代码更简单:

add_filter( \'post_gallery\', \'collect_gallery_args\', 10, 2 );

function collect_gallery_args( $empty, $args )
{
    // store $args somewhere, then

    add_action( \'wp_footer\', \'localize_my_script\', -2 );

    return $empty;
}
请参见wp-includes/media.php.

结束

相关推荐

通过ShortCode属性传递标记

祝大家节日快乐。希望有人能帮助我思考我遇到的问题。我有一个插件Im building,允许用户从maps API中提取地址数据,即它验证地址,如果是业务,则提取标记图标、地址详细信息、web链接等,并构建一个短代码以在前端呈现地图。目前正在构建短代码,并通过tinyMCE模式窗口预览结果。创建地图标记内容(标记信息气泡)是导致我变灰的原因。我希望用户能够添加或操作此块的内容,但最终的结果是相当多的标记。到目前为止,我已尝试通过以下其中一个快捷码属性传递生成的标记:[my_gmaps id=\"map\"