Avertisment la folosirea <?php include 'thefile.php'; ?>

20 nov. 2011, 06:13:47
Vizualizări: 24K
Voturi: 1

Am nevoie de ajutor suplimentar cu următoarea problemă.

Am pus o întrebare despre cum să import cod PHP, în acest caz este vorba de o bară laterală care va fi folosită pe unele pagini ale unui site WordPress. Acesta poate executa PHP din postări/pagini și am testat și direct în codul principal.

Când am pus întrebarea, cea mai simplă și mai bună soluție ar fi să creez un fișier și să folosesc include.

Am creat thefile.php și l-am pus în directorul temei unde se află toate celelalte fișiere .php folosite. În fișier am pus doar niște HTML de bază cum ar fi:

<div id="the-id">
      <p>un text de test</p>
</div>

Apoi am pus codul include scris ca mai jos în șablonul meu:

<?php include 'thefile.php'; ?>

Făcând acest lucru, văd textul meu "un text de test" dar primesc și câteva avertismente:

Warning: include(/wp-content/themes/thetheme/thefile.php) [function.include]: failed to open stream: No such file or directory in /home/cplac/public_html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code on line 22

Și de asemenea acesta:

Warning: include() [function.include]: Failed opening '/wp-content/themes/thetheme/thefile.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php:/home/cplac/public_html/wp-content/plugins/wpsyndicator:/home/cplac/public_html/wp-content/plugins/wp-external-links/includes/phpQuery/:/home/cplac/public_html/wp-content/plugins/wp-external-links/includes/phpQuery/plugins/') in /home/cplac/public_html/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()'d code on line 22

Poate cineva să mă ajute cu această problemă? Am testat atât în pagini cât și în fișierele temei!

php
0
Toate răspunsurile la întrebare 3
1

Metoda WordPress pentru a include fișiere php este utilizarea acestei funcții:

<?php get_template_part('myfile'); ?>

care va include fișierul myfile.php care se află în același director de template.

Vezi http://codex.wordpress.org/Function_Reference/get_template_part pentru alți parametri.

20 nov. 2011 07:08:59
Comentarii

Având în vedere că OP (@Mathias) utilizează WordPress ca framework, aceasta ar fi de fapt cea mai bună metodă.

Johannes Pille Johannes Pille
20 nov. 2011 08:32:16
2

Trebuie să adaugi /home/cplac/public_html/ în calea de include.

20 nov. 2011 06:19:32
Comentarii

Mulțumesc, asta a rezolvat problema :D

User User
20 nov. 2011 06:24:33

@MathiasÅsberg, Ar trebui să marchezi acest răspuns ca răspuns acceptat, dacă ți-a rezolvat problema. Te rog citește întrebările frecvente: http://stackoverflow.com/faq

User User
20 nov. 2011 06:45:39
3

include este similar cu

include = 'thefile.php';

pe de altă parte, trebuie să specifici și calea corectă către fișier din nivelul rădăcină sau din nivelul adiacent în care se află fișierul.

Să presupunem că am pus un fișier în folderul "images" de pe serverul meu, de exemplu. Iar calea către fișier ar fi /images/thefile.php

deci cu asta, include ar arăta astfel

include = '/images/thefile.php';

edit ca o observație, lucrul cu WP poate fi uneori dificil.. dar în general WP este PHP, deci orice funcționează în PHP va funcționa și în WP în general.

pentru tine, bazându-ne pe eroare, ar putea fi ceva de genul..

include = '/wp-content/themes/thetheme/thefile.php';

Dar ar trebui să navighezi din ftp-ul tău sau echivalentul său la acea cale și să încarci fișierul acolo.

20 nov. 2011 06:18:36
Comentarii

1) Sintaxa include este corectă fără paranteze. 2) La ce se referă "/images" în mod relativ?

User User
20 nov. 2011 06:20:45

Ai dreptate... Sunt obișnuit să scriu cu o sintaxă diferită din cauza modelelor MVC pe care le folosesc în ultima vreme. Iar "images" a fost doar un exemplu... nimic mai mult

User User
20 nov. 2011 06:23:32

Din câte știu eu, acest lucru este complet greșit! Acest lucru declanșează o eroare de sintaxă în PHP. include este un cuvânt cheie, nu îi poți atribui nicio valoare.

Mike Mike
5 oct. 2018 09:06:54