图像未显示在媒体加载器成功区域-后续

时间:2012-04-04 作者:roberthuttinger

这是这个问题的第二部分:Post Specific Uploader

我使用上载筛选器将文件放置在基于post_id. 现在,当文件上载时,元数据中的URL路径错误,图像预览被破坏(缺少post_id).

URL显示为:http://foo.com/blog/wp-content/uploads/icon_jpeg.png 但(在这种情况下)应该是:http://foo.com/blog/wp-content/uploads/571/icon_jpeg.png

这部分对我来说真的很神奇。如果这些是上载文件时的值,那么路径是否应该正确?是否有需要更改的查询参数?

谢谢你帮助一个WP noob!

干杯Bo公司

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

未经测试,但从理论上讲应该可行:

add_filter(\'get_attached_file\', function($path, $file, $attachment_id){

  // get the post object of the current attachment
  $att = get_post($attachment_id);

  // prepend attachment post parent ID to the file name
  return substr_replace($path, "{$att->post_parent}/{$file}", -strlen($file));
});
另一个过滤器尝试“修复”WP的上载处理程序返回的路径:

add_filter(\'wp_handle_upload\', function($results){
  global $post;

  if(empty($post))
    return $results;

  extract($results);

  $uploads = wp_upload_dir();

  $file = str_replace($uploads[\'basedir\'], "{$uploads[\'basedir\']}/{$post->ID}", $file);
  $url = str_replace($uploads[\'baseurl\'], "{$uploads[\'baseurl\']}/{$post->ID}", $url);

  return compact(\'file\', \'url\', \'type\');
});
如果媒体上载程序不在全局$post变量中公开当前帖子,则此操作将不起作用。

结束

相关推荐

hide wp-content from urls

下面是我想从页面源中包含的文件的URL中隐藏wp内容的想法。在wp设置中定义以下内容。phpdefine (\'WP_CONTENT_URL\',\'http://example.com/myownfoldername\'); 并将此添加到.htaccessRewriteRule ^myownfoldername/(.*) /wp-content/$1 [QSA,L] 在localhost上没有其他插件的情况下,这似乎可以很好地工作,但在只有几个插件的在线站点上,它可以无缝地工作。我更