我目前正在使用Transposh(但我不介意使用別的東西另外),我有一個菜單項指向PDF文件(用戶下載)。獨特的PDF取決於我的WordPress站點上的語言
該PDF文件存在網站支持的4種語言,但我沒有找到一種方法來自定義每個lang的菜單項的href。
我該如何做到這一點?
我目前正在使用Transposh(但我不介意使用別的東西另外),我有一個菜單項指向PDF文件(用戶下載)。獨特的PDF取決於我的WordPress站點上的語言
該PDF文件存在網站支持的4種語言,但我沒有找到一種方法來自定義每個lang的菜單項的href。
我該如何做到這一點?
由於您正在使用Transposh,因此您可以通過JavaScript實現此目的。
下面是一個示例代碼:
<script type="text/javascript">
//This gets the language of the current page the user is on
var language = document.querySelector('.tr_active').children[0].getAttribute("title");
//#pdfLink is the anchor tag with the ID pdfLink in your page which you intend to customize
var pdfLink = document.querySelector('#pdfLink');
if (language === "English")
{
pdfLink.href = "http://path/to/englishFile.pdf";
}
else if (language === "Français")
{
pdfLink.href = "http://path/to/frenchFile.pdf";
}
else if ...(other language conditions)...
</script>
我很欣賞這種努力,但它會殺死「用戶友好CMS」的概念。本網站旨在由對編碼一無所知的人定製。 – 2014-09-08 08:18:16
對於非編碼答案,您可以在[WebApps StackExchange站點](http://webapps.stackexchange.com/)或[Transposh的WordPress支持論壇](http://wordpress.org)上獲得更好的運氣。 /支持/插件/通過Transposh翻譯過濾換WordPress的)。 – 2014-09-08 08:25:02
如果我正確理解您的問題,您(或您的用戶)可以添加PDF鏈接進入菜單,例如:
http://example.com/prices_2014_%pdflang%.pdf
哪裏%pdflang%
是當前的語言。
然後使用下面的過濾器在位於當前主題目錄中functions.php
文件,或將此放在一個插件:
/**
* Replace %pdflang% in your nav menus, with the current language string.
*
* @uses transposh_get_current_language()
* @see http://stackoverflow.com/a/25721273/2078474
*/
! is_admin() && add_filter('wp_nav_menu_objects',
function($items, $args) {
if(function_exists('transposh_get_current_language'))
{
// Get current language:
$pdflang = sanitize_key(transposh_get_current_language());
foreach ($items as $item)
{
if(false !== strpos($item->url, '%pdflang%'))
{
// Replace %pdflang% with current language key:
$item->url = str_replace(
'%pdflang%',
$pdflang,
$item->url
);
}
}
}
return $items;
}
, 11, 2);
自動用當前語言鍵更換%pdflang%
字符串,菜單中的項目鏈接。
接着上面的鏈接會翻譯成:
http://example.com/prices_2014_en.pdf // English as current language
http://example.com/prices_2014_fr.pdf // France as current language
http://example.com/prices_2014_da.pdf // Danish as current language
http://example.com/prices_2014_is.pdf // Icelandic as current language
此後可以輕鬆地修改此目標只有一個特定的菜單。
您知道,您可以使用名爲「WPML」的翻譯器插件,它會使一切變得更加簡單。 根據用戶正在查看的語言,在條件中顯示某些內容也很容易。
像這樣:
<?php if(ICL_LANGUAGE_CODE == 'en') { ?>
Display the english PDF here
<?php } elseif (ICL_LANGUAGE_CODE == 'it') { ?>
Display the italian PDF here
<?php } else {} ?>
的ICL_LANGUEAGE_CODE
位基本上得到當前正在觀看的語言。
你抓住了我的漂移?
鏈接到他們的網站:http://wpml.org/
鏈接到文件:http://wpml.org/documentation/
感謝。
您可以將href創建爲一個php文件,然後重定向到正確的pdf文件。 – d3L 2014-09-08 07:16:58
編寫代碼將是我的最後手段。我很確定我不是第一個需要該功能的WordPress用戶。 – 2014-09-08 07:31:13
pdf文件的名稱是什麼?你的概率是你不能?鏈接4個不同版本的pdf取決於語言到一個'下載'鏈接? – 2014-09-08 07:32:34