Intereting Posts
Пользовательские размеры изображений только для эскизов После того, как изображение ajax находится за пределами тега <a> Извлечение информации из почтового содержимого (с использованием регулярного выражения?) Объединение нескольких категорий в один URL-адрес Slug jQuery не работает в редакторе WordPress Получение изображений из галереи NextGEN Каков правильный способ размещения в Google Font Loader? Форма поискового плагина на странице «Добавить плагин» не работает Имея проблемы с разбиением на страницы WordPress с несколькими категориями WP-CLI – возврат сообщений с совпадающим мета-ключом Как создать управляемый репозиторий изображений в wordpress Ошибка синтаксиса, неожиданный «класс» (T_CLASS) в строке 1 после обновления до php 5.6.4 Можно ли использовать несколько значений в правиле перезаписи? Цикл путем создания дополнительных полей WordPress добавляет вторую обратную косую черту, когда я использую addlashes

qTranslate: Скрыть нетранслируемый контент

Я знаю, что qTranslate имеет возможность скрывать нетранслируемый контент, но это, похоже, не работает. Т.е.: У меня есть веб-сайт с тремя языками: голландский, французский и английский. Существует одна конкретная страница с некоторыми подстраницами, которые доступны только на голландском языке. Я хочу, чтобы они появились на голландском веб-сайте, но полностью спрятали их с французского и английского сайтов. Вот так:

  • MenuItem1
  • MenuItem2
    • MenuItem2.1
    • MenuItem2.2
  • MenuItem3

Таким образом, MenuItem2 и его подстраницы доступны только на голландском языке. Я хочу, чтобы они были скрыты на английском / французском веб-сайте.

Возможно ли это с qTranslate или другим плагином? Или есть кусок кода, который позволит это?

Благодарю.

Solutions Collecting From Web of "qTranslate: Скрыть нетранслируемый контент"

Это может помочь: http://www.gish.se/wg-qtranslate.zip – загрузить и установить, а затем исправить плагин, изменив:

foreach($content as $language => $lang_text) { $lang_text = trim($lang_text); if(!empty($lang_text)) $languages[] = $language ; } 

в

 foreach($content as $lang => $lang_text) { $lang_text = trim($lang_text); if(!empty($lang_text)) $languages[] = $lang ; } 

взятый из http://www.qianqin.de/qtranslate/forum/viewtopic.php?f=3&t=2958 , работает в большинстве случаев

Маленький взлом в моем подменю:

 function hierarchical_submenu($post) { $top_post = $post; // If the post has ancestors, get its ultimate parent and make that the top post if ($post->post_parent && $post->ancestors) { $top_post = get_post(end($post->ancestors)); } // Always start traversing from the top of the tree return hierarchical_submenu_get_children($top_post, $post); } function hierarchical_submenu_get_children($post, $current_page) { $menu = ''; // Get all immediate children of this page $children = get_pages('child_of=' . $post->ID . '&parent=' . $post->ID . '&sort_column=menu_order&sort_order=ASC'); if ($children) { $menu = "\n<ul>\n"; foreach ($children as $child) { // If the child is the viewed page or one of its ancestors, highlight it if (in_array($child->ID, get_post_ancestors($current_page)) || ($child->ID == $current_page->ID)) { $menu .= '<li class="active"><a href="' . get_permalink($child) . '" class="first-li active">' . $child->post_title . '</a>'; } else { if (strcmp($child->post_title, " ")) { $menu .= '<li><a href="' . get_permalink($child) . '">' . $child->post_title . '</a>'; } } // If the page has children and is the viewed page or one of its ancestors, get its children if (get_children($child->ID) && (in_array($child->ID, get_post_ancestors($current_page)) || ($child->ID == $current_page->ID))) { $menu .= hierarchical_submenu_get_children($child, $current_page); } $menu .= "</li>\n"; } $menu .= "</ul>\n"; } return $menu; } 

Добавлено

 if (strcmp($child->post_title, " ")) { $menu .= '<li><a href="' . get_permalink($child) . '">' . $child->post_title . '</a>'; } 

Если структура здесь.

Я создаю очень простой плагин, который позволяет скрывать элементы меню на некоторых языках, но показывать их на других.
После установки моего плагина и включения его вам просто нужно удалить заголовок с нежелательного языка, но оставите строку в других.
Например, если вы хотите показать «Профиль компании» только в английском меню, но не во французском меню (или на любом другом языке), вы устанавливаете заголовок пункта меню: «Профиль компании».
Поведение qTranslate по умолчанию даст вам пункт «Профиль компании (английский)» во французском меню.
Наслаждайтесь: http://www.hoojima.com/wordpress/qtranslate-remove-menu-item.zip

Я сделал следующее в functions.php моей темы:

 if (function_exists('qtrans_getLanguage')): function mytheme_qt_menu_filter($items) { $filtered = array(); foreach ($items as $item) { // TODO Not sure what happens when object_id == ID, which happens if // not linking to post (eg external link). if (qtrans_isAvailableIn($item->object_id, qtrans_getLanguage())) $filtered[] = $item; } return $filtered; } add_filter('wp_get_nav_menu_items', 'na_qt_menu_filter'); endif; 

Кажется, это работает в моем случае 🙂