Utilizarea parametrilor din URL pentru afișarea conținutului în pagină
Aș dori să afișez ceva pe pagina mea în funcție de pagina de unde vine vizitatorul. Pot configura link-ul către acea pagină să fie:
www.example.com/page?parameter=myparameter
Există vreo modalitate prin care pot accesa acel parametru astfel încât să-l pot afișa în pagină, undeva în conținutul meu?

Conform răspunsului OP în cadrul întrebării lor:
Cu ajutorul vostru și prin căutare pe Google, am creat un shortcode care returnează valoarea oricărui parametru din URL. Iată-l:
//ACESTA ESTE UN SHORTCODE PERSONALIZAT PENTRU AFIȘAREA UNUI PARAMETRU DIN URL
function URLParam( $atts ) {
extract( shortcode_atts( array(
'param' => 'param',
), $atts ) );
return $_GET[$param];
}
add_shortcode('URLParam', 'URLParam');
Folosesc shortcode-ul astfel pentru a obține parametrul trip_type
din URL-ul meu:
[URLParam param='trip_type']

Puteți utiliza o sesiune PHP, căutați în obiectul de interogare pentru cerere sau folosiți $_GET cu URL-ul dvs., dar nu este pentru informații sensibile...
Ceva de genul acesta;
Preluați numele călătoriei din URL
$tripname = $_GET['tripname'];
Folosiți-l în titlul dvs.;
if(isset($tripname)) echo '<h1>Planificați-vă călătoria la ' .$tripname. '</h1>';

Acest lucru te-ar putea ajuta: http://www.w3schools.com/php/php_get.asp

Mulțumesc! Pot să pun asta direct pe pagină, sau trebuie să fie într-un fișier de template?

Depinde unde ai nevoie de el - dacă apare doar pe o pagină care rulează pe un singur șablon, l-ai pune acolo. De unde provine informația și unde va ajunge?

Povestea este așa: am multe 'pagini de excursie', fiecare având informații despre o anumită excursie pe care o organizăm. Apoi, ei apasă pe "înregistrare", și sunt duși la o pagină cu un formular de înregistrare (gravity forms). Aș dori ca pagina (sau altfel descrierea din partea de sus a formularului) să spună "Completează acest formular pentru a te înregistra la excursia xxxx".

Așa că am adăugat la URL-ul butonului de înregistrare de pe fiecare pagină de excursie, www.website.com/registration?trip=tripname.

Aș mai dori să folosesc aceeași funcționalitate și pe o altă pagină de formular, unde ne solicită să le trimitem un itinerar. Ar funcționa soluția ta? Poate că un shortcode ar fi o idee mai bună??

Crearea unui shortcode va necesita mai multă muncă și timp decât acest lucru, așa că depinde de ceea ce dorești să faci în general. Codul pe care l-am menționat ar trebui plasat pe pagina unde se află formularul. Dacă se află pe un șablon specific, cum ar fi page.php, ar trebui să fie plasat acolo.

Ambele se află pe același șablon, dar doresc să existe text diferit în jurul lor. Se poate face acest lucru fără un shortcode?

Sau, știi unde pot găsi un ghid "crearea de shortcode-uri pentru începători" sau ceva similar?

Sugerez să petreci ceva timp pe WP Codex și să citești despre shortcode-uri. Există informații utile online. Ai putea comuta între două bucăți de text în același template, dar declarația condițională ar fi altă poveste.

O să arunc o privire. Ce înțelegi prin "Ai putea comuta între două bucăți de text în același template"?

Iată o altă metodă excelentă pentru a realiza acest lucru. Aceasta nu va necesita shortcode-uri și va actualiza automat fiecare pagină creată unde parametrul "trip" este prezent!
1) Navigați în folderul temei și deschideți functions.php (sau creați-l dacă nu există)
2) Adăugați următorul cod și salvați:
<?php
add_filter( 'the_content', 'my_trip_filter' );
function my_trip_filter( $content ) {
if ( isset($_REQUEST['trip']) && is_single() ) {
$content = "<h1>Completează acest formular pentru a te înregistra la excursia " . $_REQUEST['trip'] . "</h1>" . $content;
}
return $content;
}
?>
Acest cod folosește filtrul the_content pentru a suprascrie de fiecare dată când utilizați funcția the_content() pentru a afișa informațiile blogului. Acesta detectează dacă pagina solicitată este o pagină/postare individuală și nu arhiva. Pot fi adăugate logici suplimentare sau suprascrieri. Asigurați-vă că returnați $content și orice mesaj doriți va fi afișat pe ecran.
Bucurați-vă!
