我使用的是突出的主题,它似乎不支持基于当前语言的不同社交媒体。
为了解决这个问题,我修改了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”的配置,反之亦然。
因此,我想我必须找到一种方法来禁用覆盖。
有没有其他的wa可以做到这一点?使用wpml做这件事是第一个选择,但找不到一种方法来让复选框具有不同的值。
发布于 2018-02-26 15:17:26
只需根据您的版本在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
}
?>https://stackoverflow.com/questions/48982973
复制相似问题