仅允许将附件上载到当前帖子

时间:2014-08-26 作者:karbuncle

“添加媒体”按钮允许将任何媒体添加到当前编辑器中。我需要从下拉菜单“上传到此页面”是唯一可用的选项。不久前,我在这样的地方找到了一个解决方案:

jQuery(function($){
    $(document).on("DOMNodeInserted", function(){
        // Lock uploads to "Uploaded to this post"
        $(\'select.attachment-filters [value!="uploaded"]\').remove()
        $(\'select.attachment-filters\').trigger(\'change\');
    });
})
但是,此事件与我的另一个插件冲突,因为该插件将插入100多个节点,而此代码段将大大降低该过程的速度:附加此事件的加载时间将延长2分钟。

因此,我正在寻找一个更好的解决方案,以节省时间和浏览器资源。欢迎提出任何建议!

2 个回复
SO网友:karbuncle

也许我想得太多了,但解决办法比我想象的要简单。

我只需要将事件处理程序限制为某个元素,这样其他不相关的元素就不会触发该处理程序。在这种情况下,.media-modal 是媒体库元素的总体父元素,因此我将为事件指定此额外选择器,如下所示:

jQuery(document).on("DOMNodeInserted", \'.media-modal\', function() {
    // ...
}
测试后,这将加快节点的其他插入。

SO网友:Howdy_McGee

这是我经常使用的东西。实际上,它与您使用的是同一个东西,但将其放在管理页脚中,以便它是最后加载的内容之一。也许更快?

function media_library_filter(){ 
    ?>
      <script type="text/javascript">
        jQuery(document).on("DOMNodeInserted", function(){
            jQuery(\'select.attachment-filters [value="uploaded"]\').attr( \'selected\', true ).parent().trigger(\'change\');
        });
      </script>
    <?php 
}
add_action( \'admin_footer-post-new.php\', \'media_library_filter\' );
add_action( \'admin_footer-post.php\', \'media_library_filter\' );
您可以查看此内容,但它有点旧:

Change the default-view of Media Library in 3.5?

结束

相关推荐

上传的图像不在/Uploads文件夹中

网站存在巨大问题。我更新了主题以使用帖子缩略图(这是多么旧),然后在尝试上载图像以用作特色缩略图时:图像会处理/压缩,但URL会导致404。网站没有任何异常。htaccess。实际上没有wp content/uploads目录,所以我做了一个,chmod权限是0755,所以这不应该是问题所在。我将“媒体设置”文件夹重置为默认文件夹,但该文件夹中不会出现任何图像。编辑:将上载文件夹更改为0777权限似乎可以解决此问题。这样保留权限安全吗?