Ссылка на каталог в другой папке wordpress image.php

Код для загрузки изображения на сайт wordpress.

  function upload_image($file, $post_id) {

    require_once('../wp-admin/includes/image.php');
    require_once('../wp-admin/includes/file.php');
    require_once('../wp-admin/includes/media.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');

    // upload image to server
   media_sideload_image($file['url'], $post_id);

    // get the newly uploaded image
    $attachments = get_posts( array(
        'post_type' => 'attachment',
        'number_posts' => 1,
        'post_status' => null,
        'post_parent' => $post_id,
        'orderby' => 'post_date',
        'order' => 'DESC',) 
    );

    // returns the id of the image
    return $attachments[0]->ID;
}

$result1 = attach_image_url('http://www.americanmattress.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/p/a/parmelee_fm2.jpg','0');
print_r($result1);

Вот в чем проблема:

  • Функция находится в RootWPFolder / Somefolder / ThisFunction.php
  • Необходимые файлы находятся в RootWPFolder / wp-admin / includes / file.php

Я получаю следующую ошибку:

Неустранимая ошибка: require_once (): не удалось открыть 'ABSPATHwp-admin / includes / media.php' (include_path = '.: / Opt / alt / php54 / usr / share / pear: / opt / alt / php54 / usr / share / php ')


person startupking1    schedule 20.04.2015    source источник
comment
file.php загружается, но не media.php? Похоже, что media.php находится не в том месте, потому что носитель находится после файла, как вы его включили   -  person Drakes    schedule 20.04.2015
comment
Кажется, ни один из трех файлов не загружается.   -  person startupking1    schedule 20.04.2015
comment
Откройте wp-load.php в корне, найдите, установлен ли define( 'ABSPATH', dirname(__FILE__) . '/' );. Если да, то используйте свои строки комментариев.   -  person Drakes    schedule 20.04.2015


Ответы (1)


Сообщение об ошибке

Не удалось открыть "ABSPATHwp-admin / includes / media.php"

Предполагает, что ABSPATH не определен. Откройте wp-load.php в корне и убедитесь, что

define( 'ABSPATH', dirname(__FILE__) . '/' ); 

установлен. Если это так, тогда используйте их вместо относительных каталогов:

require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
person Drakes    schedule 20.04.2015
comment
Я убедился, что он был определен, и попытался использовать команды require_once, не повезло - person startupking1; 20.04.2015
comment
Не могли бы вы опубликовать сообщение об ошибке еще раз, когда подтвердите, что ABSPATH установлен в wp-load.php? Меня беспокоит, что ABSPATH каким-то образом не определяется - person Drakes; 23.04.2015