Preluarea imaginilor din directorul temei în pagini

14 dec. 2015, 04:25:47
Vizualizări: 81.3K
Voturi: 15

Da, știu că avem get_template_directory_uri(); pentru a face referire la directorul temei. Funcționează când pun următorul cod în index.php sau în header.php:

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

Dar când adaug o imagine în pagini în timpul editării prin modul text, nu prin cel vizual, nu funcționează. Cum pot prelua imaginile din directorul de imagini al temei în pagini?

Mulțumesc!

5
Comentarii

Se pare că încerci să adaugi cod PHP prin editorul de conținut?

birgire birgire
14 dec. 2015 04:30:15

@birgire da, adaug în acest mod. Există alte soluții?

ajdeguzman ajdeguzman
14 dec. 2015 04:31:26

Asta nu va funcționa din motive de securitate. Nu dorești să utilizezi URL-ul complet al imaginii? În general, aș evita să folosesc imagini specifice temei în conținut, deoarece atunci când schimbi și ștergi vechea temă, acestea dispar. Așadar, aș lua în considerare utilizarea /wp-content/uploads/ pentru imaginile din conținut.

birgire birgire
14 dec. 2015 04:33:01

@birgire singura mea preocupare este organizarea directorului de imagini, de aceea le pun în directorul temei. Este posibil în wp-contents/uploads să organizezi foldere?

ajdeguzman ajdeguzman
14 dec. 2015 04:35:12

Pentru câteva imagini le-aș încărca pur și simplu prin Biblioteca Media. Dacă ai nevoie de o metodă pentru a le identifica, există de exemplu plugin-uri care îți permit să etichetezi (să categorisezi) imaginile.

birgire birgire
14 dec. 2015 04:42:32
Toate răspunsurile la întrebare 6
2
<img src="<?php echo esc_url( get_template_directory_uri() . '/images/logo.jpg' ); ?>" alt="Logo site" title="Logo-ul principal al site-ului" >

Încearcă acest cod. Ar trebui să funcționeze. Trebuie să concatenezi rezultatele din get_template_directory_uri() cu directorul imaginilor în comanda echo.

24 mar. 2021 11:58:32
Comentarii

Domnule Glorfindel, mulțumesc pentru editarea postării mele. Dacă considerați că este corectă, vă rog să o votați pozitiv. Acest lucru m-ar ajuta foarte mult la începutul meu pe stackexchange. Mulțumesc anticipat.

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

Ar trebui să utilizați Security Escape - get_template_directory_ur ."WordPress.Security.EscapeOutput.OutputNotEscaped] Toate ieșirile ar trebui să fie procesate printr-o funcție de escapare (consultați secțiunile despre Securitate din Ghidul pentru Dezvoltatori WordPress), am găsit 'get_template_directory_uri'.

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

Shortcode este soluția, ceva de genul acesta (în functions.php sau ca plugin) ar funcționa:

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

Nu este posibil să utilizezi cod PHP în editor. Poți folosi o imagine cu cale completă.

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

În general, aș evita utilizarea imaginilor specifice temei în conținut, deoarece atunci când schimbi și ștergi tema veche, acestea dispar. Așadar, aș lua în considerare utilizarea /wp-content/uploads/ pentru imaginile din conținut.

17 mar. 2017 17:07:59
Comentarii

aceasta este o soluție bună. <img src="<?php echo get_template_directory_uri().'/images/sample.png'; ?>">

Mohammad Ayoub Khan Mohammad Ayoub Khan
13 iun. 2021 19:50:14
0

Răspunsul este da. Puteți rula cod PHP în editor. Dar acesta nu este modul corect de a adăuga imagini. În schimb, ar trebui să creați shortcode-uri pentru a prelua acele imagini din folderul temei sau să folosiți coduri precum cel de mai jos:

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

Prin eliminarea numelui de domeniu, puteți beneficia chiar de cereri HTTP mai eficiente. Dacă eliminarea domeniului nu funcționează, puteți instala plugin-uri WordPress pentru execuție PHP. Există câteva plugin-uri despre acest subiect. Pentru a înțelege mai bine, ar trebui să citiți acest articol. Sper că acest lucru vă va rezolva problemele :). Mult succes în codare.

14 dec. 2015 04:50:10
0
13 feb. 2017 14:00:50
0

get_template_directory_uri()

O căutare rapidă prin codul de bază al WordPress arată două abordări diferite. Această funcție necesită escapare atunci când este folosită în interiorul unui atribut al unei etichete.

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

Când este folosită în interiorul funcțiilor wp_enqueue_style() sau wp_enqueue_script(), nu este escapată:

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

Cu toate acestea, analizând funcția în sine, aceasta are un filtru chiar înainte de returnarea valorilor, ceea ce o face suspectă – poate fi filtrată în plugin-uri și nu știm exact ce este returnat. Regula de bază în această situație ar fi "mai bine prevenit decât tratat" și să escapezi mereu.

22 apr. 2022 13:34:32