cómo obtener la ruta a las imágenes en la carpeta uploads para usar en un plugin

12 dic 2012, 19:06:48
Vistas: 56.2K
Votos: 10

Tengo algunas imágenes en una carpeta en /wp-content/uploads. También tengo un archivo de plugin en /wp-content/plugins. Quiero recuperar las imágenes almacenadas en /wp-content/uploads y usarlas en el archivo del plugin.

He intentado esto

echo'<img src="../../USER_PHOTOS/ronny'" href="#"></img>';

¿alguien puede mostrarme cómo puedo obtener la ruta a estas imágenes? gracias.

0
Todas las respuestas a la pregunta 5
0

Si no me equivoco, quizás quieras probar la función wp_uploads_dir, de la siguiente manera:

$uploads = wp_upload_dir(); 

echo '<img src="' . esc_url( $uploads['baseurl'] . '/USER_PHOTOS/ronny/' ) . '" href="#">';
12 dic 2012 19:32:35
0

Desafortunadamente existe un error documentado donde wp_upload_dir() no respeta https (ssl). Mi sugerencia es crear un envoltorio (wrapper) para eliminar el protocolo de la URL devuelta y hacerla adaptable al entorno:

function wp_upload_dir_url() {
  $upload_dir = wp_upload_dir();
  $upload_dir = $upload_dir['baseurl'];
  return preg_replace('/^https?:/', '', $upload_dir);
};
echo(wp_upload_dir_url() . '/2017/01/my-img.jpg');
// devuelve algo como '//misitio.test/wp-content/uploads/2017/01/my-img.jpg'
// lo cual es perfectamente aceptable como src de una imagen

Si te preocupa el impacto en el rendimiento de usar preg_replace() múltiples veces, entonces define una constante en tu archivo functions.php:

define('WP_UPLOAD_DIR_URL', wp_upload_dir_url() . '/');
17 abr 2017 22:35:03
0

Dan S señala un ticket en trac donde wp_upload_dir() no soporta https. No he encontrado que este sea el caso en mis sitios, pero si te afecta, puedes agregar un filtro a upload_dir y devolver manualmente el protocolo correcto basado en el condicional is_ssl().

add_filter( 'upload_dir', function( $upload_dir ){
  return array_map( function( $value ) {
    return is_ssl() ?
      str_replace( 'http://', 'https://', $value ) :
      str_replace( 'https://', 'http://', $value );
  }, $upload_dir );
}, 10, 1 );

Luego puedes seguir usando wp_upload_dir() como siempre lo has hecho.

Como se menciona aquí, a menos que tengas preocupaciones específicas de rendimiento, deberías usar https://.

18 abr 2017 00:18:04
0

Encontré la respuesta. Utilicé wp_upload_dir(); codex de WordPress

12 dic 2012 19:30:33
0

Esto es lo que utilicé para acceder a un archivo de imagen llamado "rock_01.jpg" subido a la carpeta de WordPress "uploads/complete-theme/"

<?php $upload_dir = wp_upload_dir(); ?>
<img src="<?php echo $upload_dir['baseurl'] . '/complete-theme/rock_01.jpg'; ?>" />

Funcionó como se esperaba.

16 oct 2016 07:03:07