在新目录中调用media_sideload_image

时间:2013-07-29 22:56:08

标签: php wordpress

我试图将media_sideload_image称为从XML Feed导入的一部分,但我根本没有运气 - 它目前在一个目录中(localhost / wordpressdirectory / wordpress / wp-admin / imports)但我一直在尝试联系任何所需文件时没有此类目录错误。

请参阅下面的代码,该代码基本上是从WP指南中复制的media_sideload_image:

<?php 
define('ABSPATH', dirname(__FILE__));

echo ABSPATH . '\wp-admin\includes\plugin.php';
require_once( ABSPATH . '\wp-admin\includes\plugin.php');
require_once( ABSPATH . '\wp-admin\includes\media.php');
require_once( ABSPATH . '\wp-admin\includes\file.php');
require_once( ABSPATH . '\wp-admin\includes\image.php');

$url = "http://s.wordpress.org/style/images/wp3-logo.png";
$post_id = 1;
$desc = "The WordPress Logo";

$image = media_sideload_image($url, $post_id, $desc);
?>

我已经回应了这一点,它提出了这不是一个有效的文件路径: C:\瓦帕\ WWW \ wordpressdirectory \ WordPress的\可湿性粉剂管理员\进口\可湿性粉剂管理员\包括\ plugin.php

我如何在localhost中理想地解决这个问题,而不需要对其物理位置的任何要求进行硬性引用,因为abspath似乎返回了不正确的值?

2 个答案:

答案 0 :(得分:0)

您在上面的插件中定义了ABSPATH,因此ABSPATH =&#39; C:\ wamp \ www \ wordpressdirectory \ wordpress \ wp-admin \ imports&#39;因为这是您的文件所在的位置。使用您发布的相同代码,尝试在路径中的目录中包含如下内容:

<?php 
define('ABSPATH', dirname(__FILE__));

echo ABSPATH . '\..\includes\plugin.php';
require_once( ABSPATH . '\..\includes\plugin.php');
require_once( ABSPATH . '\..\includes\media.php');
require_once( ABSPATH . '\..\includes\file.php');
require_once( ABSPATH . '\..\includes\image.php');

$url = "http://s.wordpress.org/style/images/wp3-logo.png";
$post_id = 1;
$desc = "The WordPress Logo";

$image = media_sideload_image($url, $post_id, $desc);
?>

答案 1 :(得分:0)

ABSPATH已经在wp_load.php文件中由wordpress定义,通常是直到public_html或www目录的路径,我认为你不需要重新定义它,或者使用is_defined来检查它是否已定义。

将ABSPATH定义到当前目录是不必要的复杂事情..

require_once( ABSPATH . '/wp-admin/includes/plugin.php');
require_once( ABSPATH . '/wp-admin/includes/media.php');
require_once( ABSPATH . '/wp-admin/includes/file.php');
require_once( ABSPATH . '/wp-admin/includes/image.php');

这应该工作..也用正斜杠替换了反斜杠。这就是我最终如何运作,