多个快捷码仅使用自定义插件上其中一个快捷码的属性

时间:2017-07-23 作者:user3534528

创建了一个短代码,但是当在一个页面上使用多个短代码时,传入的$att仅来自使用的最后一个短代码。我做错了什么?

public function init(){
    add_action( \'wp_enqueue_scripts\', 
        array( $this, \'load_dialog_scripts\') );
    add_action( \'wp_enqueue_scripts\',
        array( $this, \'load_dialog_styles\') );
    add_shortcode( \'post-dialog-button\', 
        array( $this ,\'post_dialog_func\') );
}
public function post_dialog_func( $atts ){

    $a = shortcode_atts( array(
        \'button_image\' => \'button image\',
        \'post_id\' => \'some post id\',
        \'image\' => \'post image here\',
        \'header\' => \'post title here\',
        \'content\' => \'post content here\',
        \'post_footer\' => \'post footer info here\',
    ), $atts );

    wp_localize_script( \'dialog-popup-script\', \'dialog_popup_script\', $a );

    wp_enqueue_script( \'dialog-popup-script\' );

    $shortcode_button = \'<div class="button-dialog-container">DEMO</div>\';

    return $shortcode_button;
}
我在这里找到了同一问题的深入答案:Localize variable for multiple Shortcodes

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

每次使用时wp_localize_script 您正在替换dialog_popup_script 对象如果每个弹出窗口需要不同的设置,并且这些设置是在短代码上设置的,那么最好将这些值作为数据属性存储在div上。

结束

相关推荐

shortcode get thumbnail size

如何获取短代码缩略图大小?我的代码在函数中获取短代码缩略图大小:function thumb_medium( $atts, $content = null ) { return wp_get_attachment_url( get_post_thumbnail_id( $post_id, \'medium\') ); //or wp_get_attachment_url( get_post_thumbnail_id( $post_id, \'large\') ); //or