自定义WordPress图库选项

时间:2015-02-25 作者:antanas_sepikas

我想在默认的wordpress gallery选项卡中添加自定义选项。我需要一些简单的东西,只是一个下拉列表来添加提供的样式,这将在客户端和管理部分的编辑视图中向库添加预定义的类。

enter image description here

有没有一种方法可以做到这一点而不必破解wordpress代码。

我在这里看到一个帖子:Add option to "Gallery Settings" section 这说明了如何做我不想做的事情,但是,我尝试了它,但它不起作用,我想这是因为这个示例是针对3.5版本的,而我使用的是4.1.1如何在我当前的版本中做到这一点。

1 个回复
SO网友:Howdy_McGee

WordPress并不能很容易地修改gallery shortcode. 一些属性:

感谢用户peterbra 真的把整件事放在一起了a year ago.birgire 因为我想出了a solution 以有意义的方式添加属性除了birgires(据我所知),另一个选择是通过复制核心的现有代码来重建短代码media.php file 这是一种痛苦。

首字母上需要注意的一些事情additional_gallery_settings() 函数,来自peterbra:

tmpl- 前缀是必需的data-setting 属性只需在functions.php 文件:

/**
 * Set up the new field in the media module.
 *
 * @return void
 */
function additional_gallery_settings() {
  ?>

    <script type="text/html" id="tmpl-custom-gallery-setting">
        <span>Style</span>
        <select data-setting="style">
            <option value="default-style">Default Style</option>
            <option value="custom-style">Custom Style</option>
            <option value="ie7-style">IE7 Style</option>
        </select>
    </script>

    <script type="text/javascript">
        jQuery( document ).ready( function() {
            _.extend( wp.media.gallery.defaults, {
                style: \'default-style\'
            } );

            wp.media.view.Settings.Gallery = wp.media.view.Settings.Gallery.extend( {
                template: function( view ) {
                    return wp.media.template( \'gallery-settings\' )( view )
                         + wp.media.template( \'custom-gallery-setting\' )( view );
                }
            } );
        } );
    </script>

  <?php
}
add_action( \'print_media_templates\', \'additional_gallery_settings\' );

/**
 * HTML Wrapper - Support for a custom class attribute in the native gallery shortcode
 *
 * @param string $html
 * @param array $attr
 * @param int $instance
 *
 * @return $html
 */
function customize_gallery_abit( $html, $attr, $instance ) {

    if( isset( $attr[\'style\'] ) && $style = $attr[\'style\'] ) {
        // Unset attribute to avoid infinite recursive loops
        unset( $attr[\'style\'] ); 

        // Our custom HTML wrapper
        $html = sprintf( 
            \'<div class="wpse-gallery-wrapper-%s">%s</div>\',
            esc_attr( $style ),
            gallery_shortcode( $attr )
        );
    }

    return $html;
}
add_filter( \'post_gallery\', \'customize_gallery_abit\', 10, 3 );

结束

相关推荐

使用strpos检查“Gallery”快捷代码总是返回FALSE

我想根据[gallery] 短代码用于帖子中。我是这样做的(based on):function doraemon_scripts() { if( is_single() ) { if (strpos($post->post_content,\'[gallery\') === false){ } else { wp_enqueue_style( ... );