Cum setez dinamic titlul paginii?
Este posibil să schimb titlul paginii prin cod?
De exemplu, să zicem că numele paginii este "Plasează Comanda", dar vreau să îl schimb în "Comanda #123".
Am căutat pe Google și m-am uitat și aici dar nu am găsit nimic. Știe cineva vreun plugin sau vreo metodă?
wp_title returnează titlul paginii dar nu permite setarea acestuia: http://codex.wordpress.org/Function_Reference/wp_title
Nu există documentație oficială pentru acest lucru, dar poți aplica întotdeauna un filtru pe the_title
astfel:
add_filter('the_title','some_callback');
function some_callback($data){
global $post;
// unde $data ar fi string(#) "titlul curent"
// Exemplu:
// (ar trebui să schimbi $post->ID cu metoda prin care obții numărul comenzii de carte,
// dar poți vedea cum funcționează în acest fel cu global $post;)
return 'Comanda de carte #' . $post->ID;
}
Vezi aceste link-uri:

Se pare că acest lucru suprascrie toate titlurile. Cum pot suprascrie doar titlul curent?

Ar trebui să adaugi o condiție în callback, de exemplu if ($post->ID == 45) { ... }

Începând cu WordPress 4.4, poți folosi filtrul WordPress document_title_parts
pentru a modifica titlul.
Adaugă următoarele în functions.php
:
add_filter('document_title_parts', 'my_custom_title');
function my_custom_title( $title ) {
// $title este un array cu părți ale titlului, inclusiv una numită `title`
$title['title'] = 'Titlul meu nou';
if (is_singular('post')) {
$title['title'] = 'Postare nouă: ' . $title['title'];
}
return $title;
}

Pentru cei care doresc să modifice atributul title
al documentului, am descoperit că utilizarea filtrului wp_title
nu mai funcționează. În schimb, folosiți filtru pre_get_document_title
:
add_filter("pre_get_document_title", "my_callback");
function my_callback($old_title){
return "Titlul meu modificat";
}

mulțumesc că te-ai întors după ani de zile să postezi această actualizare. Foloseam wp_title într-un plugin al meu de ani de zile și nu am realizat că nu mai funcționează până acum, iar răspunsul tău m-a scutit de mult efort. Așadar, mulțumesc!

Depinde foarte mult dacă doriți să afișați un titlu personalizat pentru pagina curentă (adică conținutul tag-ului <title></title>
din header) sau să filtrați titlul paginilor din corpul paginii sau din liste.
În primul caz (titlul paginii curente), încercați să adăugați un filtru pentru wp_title()
astfel:
http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title
Dacă doriți să modificați titlurile paginilor în general, filtrul the_title()
va face treaba:
http://codex.wordpress.org/Plugin_API/Filter_Reference/the_title

Din experiența mea, trebuie să filtrezi atât wp_title
cât și the_title
pentru a acoperi ambele cazuri.

Nu sunt sigur dacă e din cauza deprecierii, dar la mine nu funcționează. Am încercat combinații și filtre inline, precum și noul apply_filters( 'pre_get_document_title', string $title )

De fapt, cea mai ușoară metodă de a face acest lucru este să folosești o singură linie de JavaScript.
Introdu următorul cod în șablon:
<script>document.title = "<?php echo $new_title; ?>";</script>
Acest cod nu trebuie să fie în header-ul HTML, poate fi plasat în corpul (body) paginii HTML.
