Ottenere Immagini dalla directory del tema nelle pagine

14 dic 2015, 04:25:47
Visualizzazioni: 81.3K
Voti: 15

Sì, so che abbiamo get_template_directory_uri(); per fare riferimento alla directory del tema. Funziona quando inserisco il seguente codice all'interno di index.php o in header.php:

<img src="<?php echo get_template_directory_uri(); ?>/images/sample.png">

Ma quando aggiungo un'immagine all'interno delle pagine durante la modifica in modalità testo, non in modalità visuale, non funziona. Come posso ottenere le immagini dalla directory delle immagini del tema nelle pagine?

Grazie!

5
Commenti

Sembra che tu stia cercando di aggiungere codice PHP tramite l'editor di contenuti?

birgire birgire
14 dic 2015 04:30:15

@birgire sì, lo sto aggiungendo in quel modo. Ci sono altre soluzioni?

ajdeguzman ajdeguzman
14 dic 2015 04:31:26

Non funzionerà, per motivi di sicurezza. Non vuoi usare l'URL completo dell'immagine? In generale eviterei di usare immagini specifiche del tema nei contenuti, perché quando cambi e cancelli il vecchio tema, queste spariscono. Quindi valuterei di usare /wp-content/uploads/ per le immagini dei contenuti.

birgire birgire
14 dic 2015 04:33:01

@birgire la mia unica preoccupazione è l'organizzazione della directory delle immagini, ecco perché le sto inserendo all'interno della directory del tema. È possibile organizzare cartelle in wp-contents/uploads?

ajdeguzman ajdeguzman
14 dic 2015 04:35:12

Per poche immagini le caricherei semplicemente tramite la Libreria Media. Se hai bisogno di un modo per identificarle, ci sono ad esempio plugin che ti permettono di assegnare tag o categorizzare le immagini.

birgire birgire
14 dic 2015 04:42:32
Tutte le risposte alla domanda 6
2
<img src="<?php echo esc_url( get_template_directory_uri() . '/images/logo.jpg' ); ?>" alt="" >

Prova così. Dovrebbe funzionare. Devi concatenare i risultati di get_template_directory_uri() e la directory delle immagini nell'echo.

24 mar 2021 11:58:32
Commenti

Signor Glorfindel, grazie per aver modificato il mio post. Se lo ritieni corretto, per favore votalo positivamente. Mi darebbe davvero un buon inizio su stackexchange. Grazie in anticipo

Kaif Ahmad Kaif Ahmad
25 mar 2021 14:19:20

Dovresti utilizzare l'Escape di Sicurezza - get_template_directory_ur ."WordPress.Security.EscapeOutput.OutputNotEscaped] Tutto l'output dovrebbe essere processato attraverso una funzione di escape (vedi le sezioni sulla Sicurezza nei WordPress Developer Handbooks), trovato 'get_template_directory_uri'.

Nuno Sarmento Nuno Sarmento
22 apr 2022 13:35:18
0

Shortcode è la soluzione migliore, qualcosa come questo (in functions.php o come plugin) funzionerebbe:

// [template_dir image="qualcosa.jpg"]
add_shortcode( 'template_dir', function( $atts ){
    return get_template_directory_uri() . '/images/' . $atts['image'];
});
16 feb 2018 10:58:13
1

Non è possibile utilizzare codice PHP nell'editor. Puoi usare un'immagine con il percorso completo.

<img src="/wp-content/themes/your-theme/assets/images/1.jpg" />

In generale eviterei di usare immagini specifiche del tema nei contenuti, perché quando cambi ed elimini il vecchio tema, queste spariscono. Quindi consiglierei di usare /wp-content/uploads/ per le immagini dei contenuti.

17 mar 2017 17:07:59
Commenti

questa è una buona soluzione. <img src="<?php echo get_template_directory_uri().'/images/sample.png'; ?>">

Mohammad Ayoub Khan Mohammad Ayoub Khan
13 giu 2021 19:50:14
0

La risposta è sì. Potresti eseguire codice php nell'editor. Ma non è il modo corretto per aggiungere immagini. Invece, dovresti creare shortcode per ottenere quelle immagini dalla cartella del tema o usare codici come quelli qui sotto

<img src="/wp-content/themes/your-theme/assets/images/1.jpg" />

Rimuovendo il nome del dominio, potrebbe persino trarre vantaggio dalle richieste http. Se rimuovere il dominio non funziona, potresti installare plugin php wordpress execute. Ci sono alcuni plugin a riguardo. Per capire meglio, dovresti leggere questo articolo. Spero che possa risolvere i tuoi problemi :). Buona fortuna con i codici.

14 dic 2015 04:50:10
0
13 feb 2017 14:00:50
0

get_template_directory_uri()

Una rapida ricerca nel codice core di WordPress mostra due trattamenti diversi. Questa funzione richiede l'escape quando viene utilizzata all'interno di un attributo di tag.

<img src="<?php echo esc_url( get_template_directory_uri() . '/images/logo.jpg' ); ?>" alt="" >

Quando viene utilizzata all'interno di wp_enqueue_style() o wp_enqueue_script(), non viene applicato l'escape:

wp_enqueue_script( 'theme-customizer', get_template_directory_uri() . '/js/customizer.js', array( 'customize-preview' ), '', true );

Tuttavia, osservando la funzione stessa, ha un filtro appena prima di restituire i valori, il che la rende sospetta – può essere filtrata nei plugin e non sappiamo esattamente cosa viene restituito. La regola generale in questa situazione sarebbe "meglio prevenire che curare" e applicare sempre l'escape.

22 apr 2022 13:34:32