Cum să apelezi o funcție într-o pagină/articol pentru a genera conținut în mod dinamic?
Dacă vorbești despre conținutul unui articol/pagină, nu este posibil. Iată trei moduri diferite de a rezolva problema ta. Prima metodă îți va oferi posibilitatea de a adăuga conținutul generat în interiorul conținutului articolului (sau paginii). Celelalte două vor fi afișate într-unul dintre fișierele tale de template. De exemplu, în single.php
sau page.php
.
1. Shortcode
Aceasta este mai mult sau mai puțin copiată din exemplele Shortcode API. Plasează acest cod în functions.php
sau într-unul dintre plugin-urile tale personalizate.
Poți include funcția în editorul WYSIWYG al articolului sau paginii cu următoarea sintaxă:
[unique_shortcode_name foo="123" bar="medium"]
Plasează acest cod în functions.php sau într-unul dintre plugin-urile tale personalizate:
add_shortcode('unique_shortcode_name', 'generate_content');
function generate_content($attributes) {
// Parsează parametrii/atributele și le face disponibile ca variabile.
extract(shortcode_atts(array(
'foo' => 'valoare implicită pentru foo',
'bar' => 'valoare implicită pentru bar',
), $attributes));
// Generează conținut
$output = complex_content_generation_goes_here();
return $output;
}
Poți crea și un shortcode care încadrează conținut. Shortcode-urile care încadrează conținut îți oferă posibilitatea de a prelua text ca parametru. Poate fi apelat astfel:
[unique_shortcode_name foo="123"]Text de intrare[/unique_shortcode_name]
Citește mai multe despre acest lucru în documentația Shortcode API.
2. Template de pagină
Aceasta îți va oferi posibilitatea de a seta un fișier de template specific pentru o pagină (acest lucru nu va funcționa pentru articole obișnuite). Iată documentația despre Template-urile de pagină.
Poți baza template-ul pe un fișier de template existent, precum page.php
. Singura cerință este să plasezi un comentariu multiliniu la începutul fișierului de template, astfel:
<?php
/*
Template Name: Pagina de Produse
*/
?>
Nu există nicio cerință specifică pentru numele fișierului, dar încearcă să nu îl denumești astfel încât să fie preluat de WordPress prin ierarhia de template-uri (vezi punctul 3.). Dacă faci asta, WordPress ar putea folosi template-ul tău și pentru alte pagini, ceea ce ar duce la rezultate neașteptate.
Dacă ai făcut corect cele de mai sus, ar trebui să vezi o secțiune Template cu un meniu derulant sub Atributele Paginii când editezi sau creezi o pagină. Ca în imaginea de mai jos:
3. Ierarhia de Template-uri
Ierarhia de Template-uri decide ce template ar trebui folosit pentru vizualizarea curentă a paginii și face acest lucru căutând un fișier potrivit după nume. Există o imagine foarte descriptivă a Ierarhiei de Template-uri în Codex. Te rugăm să o examinezi pentru a înțelege mai bine cum funcționează Ierarhia de Template-uri.

Vreau să adaug funcția doar pe o singură pagină (pagina "Despre mine") și nu pe toate paginile. Vreau să apelez funcția într-o anumită poziție a acelei pagini. Am încercat să apelez funcția adăugând comenzi PHP în cadrul sursei HTML folosind Funcția de test este <?php contentGenerator($true); ?> .
, dar nu a funcționat.

Dacă vorbești despre conținutul unui articol/pagină, nu este posibil. Ce poți face este să adaugi un shortcode și să-l apelezi. Ai putea de asemenea să ai un fișier de șablon specific sau să folosești ierarhia de șabloane pentru acea pagină.
