2016-04-24 43 views
0

Ich habe einen posttype, zu dem ich eine Seitenvorlagen mit Plugin benutzerdefinierte posttype Seite Vorlage zugewiesen, so dass meine Beiträge img Anlagen im posttype mit einer bestimmten Vorlage angezeigt werden. In meinem header.php ich habe Codekann keinen benutzerdefinierten Titel wiedergeben, wenn Seite

if (is_page_template ('page-book.php')) 
       { $currenturl=$_SERVER['REQUEST_URI']; 
        $booktitle = str_replace("http://mybooks.com/books/", "", $currenturl); 
        $booktitle = str_replace("-", " ", $booktitle); 
        $booktitle = strtoupper($booktitle); 
        echo $booktitle; 
       } 

aber es erinnert an die URL der Post im Titel anstelle des benutzerdefinierten Echo

wie bekomme ich es Brauch Titel

Antwort

0

Diese Linie $currenturl = $_SERVER['REQUEST_URI']; des Codes nur Rückkehr Zeichenfolge, die Teil der URL ist.

Zum Beispiel gibt die angegebene URL http://mybooks.com/books/title es /books/title zurück und wenn Sie versuchen, es durch eine leere Zeichenfolge zu ersetzen, wird nichts ersetzt, da str_replace Funktion keine Übereinstimmung findet.

Für Sie das hintere Teil der URL zu erhalten, können Sie basename

Zum Beispiel

echo basename($currenturl); 

verwenden Es wird der letzte Teil der URL zurückkehren und das ist

title.

0

Ihr Echo Code scheint für mich zu funktionieren. Versuchen Sie wit diese Lösungen:

Lösung 1:

$currenturl = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
$booktitle = str_replace("http://mybooks.com/books/", "", $currenturl); 
$booktitle = str_replace("-", " ", $booktitle); 
$booktitle = strtoupper($booktitle); 
echo $booktitle; 

oder versuchen Sie es Debuggen mit etwas wie folgt aus:

Lösung 2:

$currenturl = "http://mybooks.com/books/this-is-the-book-title"; 
$booktitle = str_replace("http://mybooks.com/books/", "", $currenturl); 
$booktitle = str_replace("-", " ", $booktitle); 
$booktitle = strtoupper($booktitle); 
echo $booktitle; 
Verwandte Themen