media_sideload_image obtiene un error fatal Llamada a la función indefinida wp_get_current_user() en C:\xampp\htdocs\project-name\wp-includes\capabilities.php

1 minuto de lectura

tratando de implementar media_sideload_image() por primera vez desde un complemento y obteniendo un error:

Error fatal: llamada a la función no definida wp_get_current_user() en C:\xampp\htdocs\project-name\wp-includes\capabilities.php en la línea 1441

Este es el PHP que estoy usando:

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://wordpress.org/about/images/logos/wordpress-logo-stacked-rgb.png";
$post_id = 1;
$desc = "The WordPress Logo";

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

Como puede ver, este es el código del WordPress Codex con un poco de adición de los foros después de que obtuve otros errores. Sin embargo, sin suerte.

Obviamente, hay algo mal con el código del códice o tal vez no está diseñado para usarse en complementos (?)

Lo que finalmente estoy tratando de hacer es obtener una imagen y agregarla a la biblioteca de medios y en la publicación que se está editando \ agregando directamente. Agradecería cualquier ayuda que pueda obtener. Gracias

  • dentro de sus llamadas reqire_once() sus barras están mal. La solución de Quayph a continuación funciona bien.

    – bocina31

    8 de octubre de 2019 a las 11:26

Si está fuera del área de wp-admin, debe agregar

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

Ver https://codex.wordpress.org/Function_Reference/media_sideload_image

Si pudiera ayudar, solo tiene los mismos problemas, resueltos agregando esta línea:

if(!function_exists('wp_get_current_user')) {
include(ABSPATH . "wp-includes/pluggable.php"); 
}

¿Ha sido útil esta solución?