如何通过ftp上传媒体文件,然后用它创建附件帖子?

时间:2014-04-16 作者:Mikael Dúi Bolinder

我需要上传一个非常大的视频。我无法通过内置上传器上传,因为我的upload\\u max\\u filesize设置为仅2M,我无法覆盖它(我已将上传大小设置为50M,帖子大小设置为100M in。htaccess和php\\u info()确实反映了我的更改)

当我尝试使用基于浏览器的上载工具时,我收到以下消息:

请求的资源/wp管理员/媒体新建。php不允许在POST请求中使用请求数据,或者请求中提供的数据量超过了容量限制。

如何通过FTP手动上传文件并将其显示在媒体库中?

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

是的,插件@Squideyes suggests you, 很好,应该可以做到。

然而,我不喜欢只指向插件答案的链接,所以这里是我的。

如果您将文件上载到WordPress uploads文件夹的子文件夹(默认情况下wp-content/uploads, 但是可以很容易地更改)而不是通过代码将文件从那里转换为附件帖子非常容易,只需使用适当的参数调用即可:

代码可供复制(&U);粘贴在Codex中可用here, 并复制如下:

<?php
// $filename should be the path to a file in the upload directory.
$filename = \'/path/to/uploads/2013/03/filname.jpg\';
// The ID of the post this attachment is for.
$parent_post_id = 37;
// Check the type of tile. We\'ll use this as the \'post_mime_type\'.
$filetype = wp_check_filetype( basename( $filename ), null );
// Get the path to the upload directory.
$wp_upload_dir = wp_upload_dir();
// Prepare an array of post data for the attachment.
$attachment = array(
  \'guid\'           => $wp_upload_dir[\'url\'] . \'/\' . basename( $filename ), 
  \'post_mime_type\' => $filetype[\'type\'],
  \'post_title\'     => preg_replace( \'/\\.[^.]+$/\', \'\', basename( $filename ) ),
  \'post_content\'   => \'\',
  \'post_status\'    => \'inherit\'
);
// Insert the attachment.
$attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id );
// Make sure that this file is included
require_once( ABSPATH . \'wp-admin/includes/image.php\' );
// Generate the metadata for the attachment, and update the database record.
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
然而,这样的代码没有办法动态传递文件路径来加载,这是非常无用的,但是为作用域创建一个非常简单的UI是非常容易的。

工作流应为:

钩住某个地方以在其中输出表单upload.php 页使用\'admin_notices\' 表格将打印在页面顶部。表单将向同一页面发送请求\'load-upload.php\' 要检查POST请求,请执行一些检查(临时状态、用户能力、文件是否存在、检查文件是否已附加),最后使用Codex中的代码创建附件POST使用\'admin_notices\' 钩子为用户输出反馈,在这两种情况下都创建了附件或出现了问题此工作流中最困难的部分是创建附件,对于它,您已经有了代码,其他部分,可以使用我提供的链接,应该非常简单。

然而,我做了一个3文件的要点,有一个工作插件,完全按照上面工作流中所说的做,找到它here.

在那里,我添加了几行javascript以允许在内部显示/隐藏表单upload.php.

下面您可以看到我的插件是如何工作的:

Plugin that create an attachment post from a file already uploaded

SO网友:Sam

试试这个插件:http://wordpress.org/plugins/add-from-server

它允许您通过FTP上传文件,然后通过admin导入。插件将媒体文件注册到数据库。

结束

相关推荐

覆盖主题的函数.php--如果主题更新了怎么办?

我在函数中添加了一个短代码。我的a主题的php文件。我想知道如果主题改变,它可能会覆盖当前的功能。php文件。那么,这是真的吗?如果是这样,我应该把我的短代码放在哪里,这样即使我更新了主题,它也不会消失?