1

在 WordPress 中,如果我使用以下代码将“照片库”添加到我的主题模板中:

              <?php echo do_shortcode('[gallery link="file"]'); ?>

然后 WordPress Core 将“use_default_gallery_style”设置为“ true ”:

wp-include/media.php 第 755 行开始如下:

if ( apply_filters( 'use_default_gallery_style', true ) )
    $gallery_style = "
    <style type='text/css'>
        #{$selector} {
            margin: auto;
        }
        #{$selector} .gallery-item {
            float: {$float};
            margin-top: 10px;
            text-align: center;
            width: {$itemwidth}%;
        }
        #{$selector} img {
            border: 2px solid #cfcfcf;
        }
        #{$selector} .gallery-caption {
            margin-left: 0;
        }
        /* see gallery_shortcode() in wp-includes/media.php */
    </style>";
$size_class = sanitize_html_class( $size );
$gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
$output = apply_filters( 'gallery_style', $gallery_style . "\n\t\t" . $gallery_div );

问题是:我的页面的 HTML 代码不会得到在线 HTML 验证器的验证,因为 WordPress Core 在 HTML 页面中打印 CSS,它没有使用单独的 CSS 文件,这是正确的做法。

CODE WordPress 输出到 HTML 如下所示:

<style type='text/css'>
            #gallery-1 {
                margin: auto;
            }
            #gallery-1 .gallery-item {
                float: left;
                margin-top: 10px;
                text-align: center;
                width: 33%;
            }
            #gallery-1 img {
                border: 2px solid #cfcfcf;
            }
            #gallery-1 .gallery-caption {
                margin-left: 0;
            }
            /* see gallery_shortcode() in wp-includes/media.php */
        </style>

我现在的解决方案:

我知道不建议编辑 WordPress CORE 文件!但是我已经编辑了 wp-include/media.php 第 755 行

从:

     if ( apply_filters( 'use_default_gallery_style', true ) )

到:

     if ( apply_filters( 'use_default_gallery_style', false ) )

我已将其更新/添加到我的 style.css 中:

        #gallery-1 {
            margin: auto;
        }
        #gallery-1 .gallery-item {
            float: left;
            margin-top: 10px;
            text-align: center;
            width: 33%;
        }
        #gallery-1 img {
            border: 2px solid #cfcfcf;
        }
        #gallery-1 .gallery-caption {
            margin-left: 0;
        }

我的问题:如何使用 function.php 将过滤器:use_default_gallery_style 设置为 false?

如何在 function.php 中编写钩子、函数或操作来删除或将 use_default_gallery_style 设置为 false?

最好的方法是什么?

我是新手,不想弄乱 WordPress CORE 文件,如果有人可以帮助我或指导我使用此功能,那就太好了。

提前致谢

4

1 回答 1

3

尝试:

add_filter( 'use_default_gallery_style', '__return_false' );

如此处建议:http ://wordpress.org/ideas/topic/wordpress-media-gallery-please-that-c​​ant-be-true/page/6

于 2013-10-22T00:05:43.203 回答