Спрашиваем и отвечаем по Wordpress-10

TA
На сайте с 12.06.2009
Offline
116
TiA
#391
stalkerdp:
Всем привет!
Подскажите, у меня таксономия привязана к разделу 'post', как мне привязать ее еще к разделу 'page' что бы она одновременно была и там и там?

Чтобы связать таксономию с указанными типами записей, нужно их передать в виде массива во втором аргументе функции register_taxonomy:

register_taxonomy('имя таксономии', array('post', 'page'), array(параметры таксономии));

Документация: https://codex.wordpress.org/Function_Reference/register_taxonomy

Профессиональная верстка и разработка сайтов на WordPress (http://www.maultalk.com/topic139110s0.html)
neznakomec
На сайте с 26.01.2013
Offline
40
#392
TiA:

Вариант второй: использовать плагин https://ru.wordpress.org/plugins/custom-permalinks/ для указания ссылок

Плагин то что нужно, спасибо, все получилось!

SEOKinG
На сайте с 03.09.2008
Offline
169
#393

Всем привет, нужна помощь, как сделать правильнее.

Задача - сайт на нескольких языках на вордпрессе

Что нашел.

Нашел вот такой чудесный плагин https://wordpress.org/plugins/polylang/ прямой конкурент как я понимаю платного WPML, есть еще несколько других бесплатных.

они делают вроде бы нужную структуру типа domen.com/ru/, domen.com/ua/ и так далее

НО! возникает у меня вопрос как быть с ссылками в меню?

как я понимаю, если меню сделано через виджеты, то всё будет работать автоматически.

а если ссылки прописаны просто где-нибудь в header.php моей темы, как тогда?

как я понимаю частично проблему решает режим "мультисайт" - для каждой версии можно создавать свой шаблон, своё меню и так далее.

НО! как я понимаю языковые версии будут лежать на поддоменах типа ru.domen.com и ua.domen.com и так далее

вот и ломаю голову, как лучше сделать, кто делал, какие идеи, ссылки в тему только приветствуются ☝

---->Лучший курс обмена WMR ==> WMZ (http://goo.gl/w1yOz4), WMR, WMZ ==> гривны (http://goo.gl/XmyIKN)
TA
На сайте с 12.06.2009
Offline
116
TiA
#394
SEOKinG:
Всем привет, нужна помощь, как сделать правильнее.
Задача - сайт на нескольких языках на вордпрессе

Что нашел.
Нашел вот такой чудесный плагин https://wordpress.org/plugins/polylang/ прямой конкурент как я понимаю платного WPML, есть еще несколько других бесплатных.

они делают вроде бы нужную структуру типа domen.com/ru/, domen.com/ua/ и так далее

НО! возникает у меня вопрос как быть с ссылками в меню?
как я понимаю, если меню сделано через виджеты, то всё будет работать автоматически.
а если ссылки прописаны просто где-нибудь в header.php моей темы, как тогда?

как я понимаю частично проблему решает режим "мультисайт" - для каждой версии можно создавать свой шаблон, своё меню и так далее.

НО! как я понимаю языковые версии будут лежать на поддоменах типа ru.domen.com и ua.domen.com и так далее

вот и ломаю голову, как лучше сделать, кто делал, какие идеи, ссылки в тему только приветствуются ☝

Изначально плагин Polylang умеет работать с переводом меню. Для этого очень важно само меню выводить через функцию wp_nav_menu с указанным параметром theme_location. Вам остается для каждого языка создать свое меню со своими ссылками и выводить его в указанной позиции на указанном языке. Вот небольшая статья по теме: https://polylang.wordpress.com/documentation/setting-up-a-wordpress-multilingual-site-with-polylang/navigations-menus/

S
На сайте с 20.03.2016
Offline
0
#395
TiA:
Чтобы связать таксономию с указанными типами записей, нужно их передать в виде массива во втором аргументе функции register_taxonomy:

register_taxonomy('имя таксономии', array('post', 'page'), array(параметры таксономии));


Документация: https://codex.wordpress.org/Function_Reference/register_taxonomy

Спасибо, все получилось!

Еще вопрос, можно ли теперь сделать так что бы в ссылке поста была не рубрика (http://site.ru/рубрика/пост), а подставлялся термин добавленной таксономии (http://site.ru/моя_таксономия/пост)?

TA
На сайте с 12.06.2009
Offline
116
TiA
#396
stalkerdp:
Спасибо, все получилось!

Еще вопрос, можно ли теперь сделать так что бы в ссылке поста была не рубрика (http://site.ru/рубрика/пост), а подставлялся термин добавленной таксономии (http://site.ru/моя_таксономия/пост)?

Посмотрите эту статью http://shibashake.com/wordpress-theme/add-custom-taxonomy-tags-to-your-wordpress-permalinks и http://wordpress.stackexchange.com/questions/108642/permalinks-custom-post-type-custom-taxonomy-post

Там описано решение схожих проблем. Можно также создать новый тип записей и вообще не привязываться к обычным категориям (таксономия category), чтобы потом не разбираться по какой таксономии строить ссылку для записи.

SEOKinG
На сайте с 03.09.2008
Offline
169
#397

TiA, я в первую очередь обдумываю вариант, как сделать правильней и удобней. за линк спасибо.

выслушаю еще идеи, может кто как делал и как удобней будет

TA
На сайте с 12.06.2009
Offline
116
TiA
#398
SEOKinG:
TiA, я в первую очередь обдумываю вариант, как сделать правильней и удобней. за линк спасибо.
выслушаю еще идеи, может кто как делал и как удобней будет

Это одно из самых идеологически верных решений. Еще одно решение - это вручную в коде выводить те или иные ссылки в зависимости от языка (функция pll_current_language)

Если речь идет о получении ссылки на страницу или запись, то вместо прописывания ссылки в явном виде, можно использовать такую конструкцию: get_permalink(pll_get_post(ID записи или страницы)). Для преобразования ID рубрики или термина таксономии можно использовать функцию pll_get_term

neznakomec
На сайте с 26.01.2013
Offline
40
#399

TiA, подскажите, возможно есть удобный плагин или метод реализация - необходим поиск по сайту из страниц таксономии. Или любой удобный поиск, но что бы результаты в поиске были исключительно из материалов страниц таксономии.

TA
На сайте с 12.06.2009
Offline
116
TiA
#400
neznakomec:
TiA, подскажите, возможно есть удобный плагин или метод реализация - необходим поиск по сайту из страниц таксономии. Или любой удобный поиск, но что бы результаты в поиске были исключительно из материалов страниц таксономии.

Все зависит от того как именно должен работать поиск. Если вы работаете со своим объектом WP_Query в каком-то цикле, то можно при инициализации объекта добавить параметр "s" со значением фразы, по которой вы собираетесь искать, а также параметр с таксономией. Массив с аргументами будет примерно таким:


'tax_query' => array(
array(
'taxonomy' => 'название таксономии',
'field' => 'название поля',
'terms' => 'значение поля таксономии',
),
),
's' => 'фраза для поиска'

Если вам нужно, чтобы стандартный поиск работал только по определенным таксономиям, то нужно добавить фильтр на событие pre_get_posts:


add_action('pre_get_posts', 'tw_pre_get', 1);

function tw_pre_get($query) {

if ($query->is_main_query() and is_search()) {

$tax_query = $query->get('tax_query');

$tax_query[] = array(
'taxonomy' => 'название таксономии',
'field' => 'название поля',
'terms' => 'значение поля таксономии',
);

$query->set('tax_query', $tax_query);

return;

}

}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий