插入媒体-附件-链接到:删除“附件页”选项

时间:2014-12-22 作者:Sofian

我想从附件的选择链接中删除附件页选项。

我并不总是想告诉我的客户不要选择这个选项,我只是想把它去掉。但我的编程能力还不足以做到这一点。媒体文件、自定义URL和无选项都很有用,应该保留下来。

是否有人知道如何仅删除其中的附件页选项?

1 个回复
SO网友:birgire

这些选项硬编码到tmpl-attachment-display-settings 下划线中的媒体模板/wp-includes/media-template 文件:

<script type="text/html" id="tmpl-attachment-display-settings">
    <h3><?php _e(\'Attachment Display Settings\'); ?></h3>
    ...cut...
    <select class="link-to"             
            data-setting="link"
            <# if ( data.userSettings && ! data.model.canEmbed ) { #>
                data-user-setting="urlbutton"
            <# } #>>

        <# if ( data.model.canEmbed ) { #>
            <option value="embed" selected>
                <?php esc_attr_e(\'Embed Media Player\'); ?>
            </option>
            <option value="file">
        <# } else { #>
            <option value="file" selected>
        <# } #>
        <# if ( data.model.canEmbed ) { #>
            <?php esc_attr_e(\'Link to Media File\'); ?>
        <# } else { #>
            <?php esc_attr_e(\'Media File\'); ?>
        <# } #>
            </option>
            <option value="post">
            <# if ( data.model.canEmbed ) { #>
                <?php esc_attr_e(\'Link to Attachment Page\'); ?>
            <# } else { #>
                <?php esc_attr_e(\'Attachment Page\'); ?>
            <# } #>
            </option>
            <# if ( \'image\' === data.type ) { #>
                <option value="custom">
                    <?php esc_attr_e(\'Custom URL\'); ?>
                </option>
                <option value="none">
                      <?php esc_attr_e(\'None\'); ?>
                </option>
            <# } #>
        </select>
        ...cut...
</script>
您可以通过添加自己的自定义模板来覆盖模板,但我不确定这对于将来的更改有多稳定。

如果您的image_default_link_type 例如,选项设置为file 而不是post, 然后,您可以尝试使用一些CSS技巧隐藏附件页选项,例如:

/**
 * Hide the \'attachment page\' option from the attachment link selection.
 * @see http://wordpress.stackexchange.com/a/173027/26350
 */
add_action( \'print_media_templates\', function(){
    echo \'<style>.post-php select.link-to option[value="post"] {display:none;}</style>\';
});
那么链接选项将是:

Before:

Before

After:

Hide attachment page option

更新:

在回复评论时,我们可以通过以下方式处理编辑后屏幕上的添加和编辑图像媒体对话框:

/**
 * Hide the \'Attachment Page\' option for the link-to part.
 */

add_action( \'print_media_templates\', function(){
    echo \'
        <style>       
            .setting select.link-to option[value="post"],
            .setting select[data-setting="link"] option[value="post"] 
            { display: none; }
        </style>\';
});

结束