cum să obții calea către imaginile din folderul uploads pentru a fi folosite într-un plugin

12 dec. 2012, 19:06:48
Vizualizări: 56.2K
Voturi: 10

Am un folder cu imagini în /wp-content/uploads. De asemenea, am un fișier plugin în /wp-content/plugins. Vreau să preiau imaginile stocate în /wp-content/uploads și să le folosesc în fișierul plugin.

Am încercat

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

poate cineva să-mi arate cum pot obține calea către aceste imagini? mulțumesc.

0
Toate răspunsurile la întrebare 5
0

Dacă nu mă înșel, poți încerca funcția wp_uploads_dir, astfel:

$uploads = wp_upload_dir();

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

Din păcate, există un bug documentat unde funcția wp_upload_dir() nu respectă https (ssl). Sugestia mea este să scrieți un wrapper pentru a elimina protocolul din URL-ul returnat, astfel încât să se adapteze la mediu:

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');
// va afișa ceva de genul '//mysite.test/wp-content/uploads/2017/01/my-img.jpg'
// care este perfect acceptabil ca src pentru un img

Dacă vă faceți griji cu privire la impactul de performanță al folosirii preg_replace() de mai multe ori, atunci setați o constantă în fișierul functions.php:

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

Dan S menționează un ticket Trac unde funcția wp_upload_dir() nu acceptă https. Nu am întâlnit această problemă pe site-urile mele, dar dacă vă afectează, puteți adăuga un filtru la upload_dir și returna manual protocolul corect bazat pe condiția 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 );

Apoi puteți continua să folosiți wp_upload_dir() ca de obicei.

După cum se menționează aici, dacă nu aveți probleme specifice de performanță, ar trebui să folosiți https://.

18 apr. 2017 00:18:04
0

Am găsit răspunsul. Am folosit wp_upload_dir(); codex WordPress

12 dec. 2012 19:30:33
0

Aceasta este metoda pe care am folosit-o pentru a accesa un fișier imagine numit "rock_01.jpg" încărcat în directorul WordPress "uploads/complete-theme/"

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

A funcționat conform așteptărilor.

16 oct. 2016 07:03:07