[英]Use the Joomla Language override to create custom <title> tags
我有這段代碼已經在我需要完成的頁面上運行。 (整個Joomla 3.9站點是自定義代碼、組件等的科學怪人)
$placeholder_country = JText::_('COM_ACME_PLACEHOLDER_COUNTRY_'.strtoupper(str_replace('-','_',$var['country'])));
if($placeholder_country === 'COM_ACME_PLACEHOLDER_COUNTRY_'.strtoupper(str_replace('-','_',$var['country'])) || !$placeholder_country) $placeholder_country = '';
$article->text = JString::str_ireplace("{%placeholder_country%}", $placeholder_country, $article->text);
我嘗試添加以下內容以查看是否可以使用相同的方式設置標題。
$placeholder_country = JText::_('titlenick_'.strtoupper(str_replace('-','_',$var['country'])));
if($placeholder_country === 'titlenick_'.strtoupper(str_replace('-','_',$var['country'])) || !$placeholder_country) $placeholder_country = '';
$document->setTitle = JString::str_ireplace("{%placeholder_country%}", $placeholder_country, $article->text);
意思是,我將 go 放入 Joomla 語言覆蓋部分,添加語言常量,例如“TITLENICK_PERU”
在“文本”Id 中輸入我想要的頁面標題。 例如“便宜的秘魯假期”。
在您的代碼中有幾點需要注意。 所以,這更像是一個代碼審查而不是一個問題的答案。
第一部分代碼生成一個LABEL,然后第二部分使用Joomla語言系統生成翻譯文本。
首先,我要確認 PHP 代碼是否生成預期的 label: COM_ACME_PLACEHOLDER_COUNTRY_PERU
或TITLENICK_PERU
。
然后,簡單的部分,確認如果你寫: JString::str_ireplace("{%placeholder_country%}", $placeholder_country, $article->text);
當 label 正確生成時; 正如您在“語言覆蓋”部分中定義的那樣,它會被替換。
In case of doubt, the Joomla function JString::str_ireplace
is just a wrapper of the PHP function so that you can check the original documentation here: https://www.php.net/str_ireplace
綜上所述,問題似乎是由於這兩個部分的復雜性增加造成的。 如果將它們分開,則可以分別解決每個部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.