Come richiamare una funzione all'interno di una pagina/articolo per generare contenuto dinamicamente?
Se stai parlando del contenuto di un articolo/pagina, non è possibile. Ecco tre diversi modi per risolvere il tuo problema. Il primo metodo ti darà la possibilità di aggiungere il contenuto generato all'interno del contenuto del tuo articolo (o pagina). Gli altri due verranno stampati in uno dei tuoi file template, ad esempio nel tuo single.php
o page.php
.
1. Shortcode
Questo è più o meno copiato/incollato dagli esempi della Shortcode API. Inseriscilo nel tuo functions.php
o in uno dei tuoi plugin personalizzati.
Puoi includere la funzione nel contenuto WYSIWYG del tuo articolo o pagina con la seguente sintassi:
[unique_shortcode_name foo="123" bar="medium"]
Inserisci questo nel tuo functions.php o in uno dei tuoi plugin personalizzati:
add_shortcode('unique_shortcode_name', 'generate_content');
function generate_content($attributes) {
// Analizza i parametri/attributi e li rende disponibili come variabili.
extract(shortcode_atts(array(
'foo' => 'valore predefinito per foo',
'bar' => 'valore predefinito per bar',
), $attributes));
// Genera il contenuto
$output = complex_content_generation_goes_here();
return $output;
}
Puoi anche creare uno shortcode che racchiude del contenuto. Gli shortcode racchiusi ti permettono di prendere del testo come parametro. Potrebbe essere chiamato in questo modo:
[unique_shortcode_name foo="123"]Testo di input[/unique_shortcode_name]
Leggi di più a riguardo nella documentazione della Shortcode API.
2. Template di pagina
Questo ti darà la possibilità di impostare un file template specifico per una pagina (questo non funzionerà per gli articoli normali). Ecco la documentazione sui Template di pagina.
Puoi basare il tuo template su un file template già esistente, come page.php
. L'unico requisito è che inserisci un commento multilinea all'inizio del tuo file template in questo modo:
<?php
/*
Template Name: Pagina Prodotti
*/
?>
Non c'è un vero requisito per il nome del file, ma cerca di non nominarlo in modo che possa essere selezionato da WordPress attraverso la gerarchia dei template (vedi punto 3.). Se lo fai, WordPress potrebbe usare il tuo template anche per altre pagine, il che ti darà risultati inaspettati.
Se hai fatto correttamente quanto sopra, dovresti vedere una sezione Template con un menu a tendina sotto Attributi pagina quando stai modificando o creando una pagina. Come questo:
3. Gerarchia dei Template
La Gerarchia dei Template decide quale template dovrebbe essere usato per la visualizzazione della pagina corrente e lo fa cercando un file appropriato in base al suo nome. C'è un'immagine molto descrittiva della Gerarchia dei Template nel Codex. Esaminala per capire meglio come funziona la Gerarchia dei Template.

Voglio aggiungere la funzione solo a una singola pagina (la pagina "Chi sono") e non a tutte le pagine. Vorrei chiamare la funzione in una posizione specifica di quella pagina. Ho provato a chiamare la funzione aggiungendo comandi PHP all'interno del codice HTML usando La funzione di test è <?php contentGenerator($true); ?> .
, ma non ha funzionato.

Se stai parlando del contenuto di un articolo/pagina, non è possibile. Quello che puoi fare è aggiungere uno shortcode e chiamarlo. Potresti anche avere un file template specifico o usare la gerarchia dei template per quella pagina.
