Социальные сети wp с важной темой на основе языка

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

Чтобы решить эту проблему, я изменил wp-content/themes/salient/nectar/redux-framework/options-config.php, чтобы добавить эту функциональность.

я определяю язык с помощью

   $my_current_lang = apply_filters( 'wpml_current_language', NULL );

И изменил массив конфигурации для facebook следующим образом:

// for the checkbox
array( 
            'id' => 'use-facebook-icon-'.$my_current_lang,
            'type' => 'checkbox',
            'title' => __('Use Facebook Icon', NECTAR_THEME_NAME), 
            'subtitle' => '',
            'desc' => ''
        )
//for the url input field
array(
            'id' => 'facebook-url-'.$my_current_lang, 
            'type' => 'text', 
            'title' => __('Facebook URL', NECTAR_THEME_NAME),
            'subtitle' => __('Please enter in your Facebook URL.', NECTAR_THEME_NAME),
            'desc' => ''
        ),

Независимо работает так, как ожидалось, проблема, с которой я столкнулся, заключается в том, что всякий раз, когда я устанавливаю социальные сети для «en», он перезаписывает конфигурацию для «fr» с пустыми значениями и наоборот.

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

Есть ли другой путь для достижения этого? Выполнение этого с помощью wpml было первым вариантом, который рассматривался, но не мог найти способ иметь разные значения для флажков.


person Tyra Pululi    schedule 26.02.2018    source источник


Ответы (1)


Просто внесите свои изменения в файл footer.php в строке 147 в зависимости от вашей версии. В противном случае ваши изменения будут перезаписаны при обновлении основной темы. Вы можете добавить некоторую логику к этой строке, которую я вырезал и вставил из нее. Я не могу проверить это, потому что у меня нет WPML, но вы поняли идею из этого примера.

Ваша проблема в том, что вы не должны вносить изменения в основные файлы темы, вам нужно придумать другое решение, рассчитанное на будущее. Я не знаю основную тему, могут быть предусмотрены крючки для добавления пользовательских параметров. В противном случае вы можете добавить пользовательские параметры в WordPress и сделать это таким образом. Затем просто внесите изменения в файл footer.php, чтобы отображались значки социальных сетей.

<?php
$my_current_lang = apply_filters( 'wpml_current_language', NULL );

if( $my_current_lang == 'en' ) {
    if(!empty($options['use-facebook-icon']) && $options['use-facebook-icon'] == 1) { ?> 
        <li><a target="_blank" href="<?php echo $options['facebook-url']; ?>"><i class="fa fa-facebook"></i> </a></li> 
    <?php 
    }
} 
elseif( $my_current_lang == 'fr' ) {
    // Enter custom code here
}
?>
person Andrew Schultz    schedule 26.02.2018
comment
Я сделал это в нижнем колонтитуле, но подумал, что это неактуально, поэтому я не добавил его в свой вопрос. проблема в том, что я не могу добавить 2 разных URL-адреса, например, facebook в панели управления. Я думаю, что я мог бы жестко закодировать URL-адреса социальных сетей, но imo - не лучший вариант. - person Tyra Pululi; 26.02.2018
comment
Это актуально. Вы можете добавить свои собственные настраиваемые поля в Общие настройки WordPress и ссылаться на них в своем шаблоне нижнего колонтитула. - person Andrew Schultz; 26.02.2018
comment
Могу ли я добавить свои собственные настраиваемые поля и ими можно будет управлять с панели управления темой? - person Tyra Pululi; 26.02.2018
comment
Чего я пытаюсь добиться, так это иметь возможность управлять ссылками на социальные сети для всех языков с помощью панели управления темой. Пока моя проблема заключается в том, что тема переопределяет конфигурацию для всех неактивных языков. - person Tyra Pululi; 26.02.2018
comment
Я обновил свой ответ, не обновляйте основные файлы темы, это решение не рассчитано на будущее. - person Andrew Schultz; 26.02.2018