Помогите дописать код в function.php | WordPress

Xvost
На сайте с 22.10.2013
Offline
44
1796

Есть код, который заменяет в плагине Wp Globus ссылку языка (demo.venas.lv/ru/) на другую - veinmedical.com

<?php


if ( ! defined( 'ABSPATH' ) ) {
exit;
}

define( 'WPGLOBUS_VEINMEDICAL_VERSION', '1.0.0' );

add_action( 'plugins_loaded', 'wpglobus__for_veinmedical_load', 11 );
function wpglobus__for_veinmedical_load() {

if ( class_exists( 'WPGlobus' ) ) :

add_filter( 'wpglobus_menu_items', 'filter__wpglobus_menu_items', 10, 2 );

function filter__wpglobus_menu_items( $selector_items, $languages ) {

/**
* Let's change language selector URL.
*/
foreach( $selector_items as $key=>$item ) {

if ( $item->language == 'ru' ) {
$selector_items[ $key ]->url = 'http://veinmedical.com';
break;
}

}

return $selector_items;
}
endif;
}

К этому коду необходимо добавить фильтр 'wpglobus_hreflang_tag', который заменит на сайте следующую строку

<link rel="alternate" hreflang="ru-RU" href="http://demo.venas.lv/ru/"/>

на

<link rel="alternate" hreflang="ru-RU" href="http://veinmedical.com/"/>

В этом фильтре должно быть что-то на подобии:

Array

(
[en] => <link rel="alternate" hreflang="en-US" href="http://www.site.dev/"/>
[ru] => <link rel="alternate" hreflang="ru-RU" href="http://www.site.dev/ru/"/>
[es] => <link rel="alternate" hreflang="es-ES" href="http://www.site.dev/es/"/>
[de] => <link rel="alternate" hreflang="de-DE" href="http://www.site.dev/de/"/>
)

Помогите правильно вписать этот фильтр в основной код. С PHP совсем не дружу

M3
На сайте с 29.01.2013
Offline
30
#1

Xvost, по фильтру "wpglobus_hreflang_tag" ничего не нагуглил, но условия в файле поправил, теоретически:


<?php

if ( ! defined( 'ABSPATH' ) ) {
exit;
}

define( 'WPGLOBUS_VEINMEDICAL_VERSION', '1.0.0' );

function wpglobus__for_veinmedical_load() {

if ( class_exists( 'WPGlobus' ) ) :

add_filter( 'wpglobus_menu_items', 'filter__wpglobus_menu_items', 10, 2 );

function filter__wpglobus_menu_items( $selector_items, $languages ) {

/**
* Let's change language selector URL.
*/
foreach( $selector_items as $key=>$item ) {

if ( $item->language == 'en' ) {
$selector_items[ $key ]->url = 'http://veinmedical.com';
} elseif ( $item->language == 'ru' ) {
$selector_items[ $key ]->url = 'http://veinmedical.com/ru/';
} elseif ( $item->language == 'es' ) {
$selector_items[ $key ]->url = 'http://veinmedical.com/es/';
} elseif ( $item->language == 'de' ) {
$selector_items[ $key ]->url = 'http://veinmedical.com/de/';
}

}

return $selector_items;
}

endif;
}

add_action( 'plugins_loaded', 'wpglobus__for_veinmedical_load', 11 );
Xvost
На сайте с 22.10.2013
Offline
44
#2

marc3d, спасибо за отклик) Вы немного не так поняли меня

Опишу немного подробнее что мне нужно:

Не спрашивайте почему, но заказчик пожелал оставить так:

есть сайт veinmedical.com (русская версия сайта demo.venas.lv). Заказчик пожелал на домене demo.venas.lv оставить латышскую и английскую версии, а русскую на veinmedical.com.

Т.е. мне нужно связать языковые версии:

demo.venas.lv - латышская версия

demo.venas.lv/en/ - английская

veinmedical.com - русская

Код, который в первом посте в начале менять не нужно, он работает как надо - меняет в WP Globus русскую ссылку на veinmedical.com. И к нему нужно дописать еще этот фильтр "wpglobus_hreflang_tag" (это мне разработчик плагина написал) и скинул вот это:

Array

(

[ru] => <link rel="alternate" hreflang="ru-RU" href="http://veinmedical.com/"/>

)

K0
На сайте с 01.09.2016
Offline
72
#3

В исходниках плагина встречается "wpglobus_hreflang_tag"?

Если встречается, то покажите тут фрагменты.

Xvost
На сайте с 22.10.2013
Offline
44
#4
kom09:
В исходниках плагина встречается "wpglobus_hreflang_tag"?
Если встречается, то покажите тут фрагменты.

в одном файле встречается такой фрагмент:

	/**

* Add rel="alternate" links to head section
* @return void
*/
public function on_add_hreflang() {

$hreflangs = WPGlobus_Utils::hreflangs();

/**
* Filter hreflang.
* Returning array.
* @since 1.0.14
*
* @param string $hreflangs An array.
*/
$hreflangs = apply_filters( 'wpglobus_hreflang_tag', $hreflangs );

if ( ! empty( $hreflangs ) ) {
echo implode( "\n", $hreflangs ) . "\n";
}

}


---------- Добавлено 11.09.2016 в 23:27 ----------

И прошу прощения за опечатку в названии темы - "Помогите дописать код в function.php". Код нужно дописать не в functions.php а в тот код, который я показал в первом посте в начале. Этот код - это плагин, написанный специально для demo.venas.lv, чтобы сменить ссылку в переключателе языков.
W0
На сайте с 06.04.2016
Offline
3
#5

Попробуйте так

add_filter('wpglobus_hreflang_tag', 'filter__wpglobus_link_items');


function filter__wpglobus_link_items($link_languages) {
foreach ($link_languages as $key => $item) {

if ($key == 'ru') {
$link_languages[$key] = '<link rel="alternate" hreflang="ru-RU" href="http://veinmedical.com/"/>';
break;
}
}

return $link_languages;
}


---------- Добавлено 12.09.2016 в 12:36 ----------

Криво вставилось.

***91;$key***93; заменить на [$key]

Xvost
На сайте с 22.10.2013
Offline
44
#6

wlad007, спасибо!)) То что надо, все работает)

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