我使用的是突出主题, 似乎它不支持基于当前语言的不同社交媒体。
为了解决这个问题, 我修改了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进行此操作是调查的第一个选项, 但是找不到找到具有不同复选框值的方法。
#1
只需在147行附近的footer.php文件中进行修改即可, 具体取决于你的版本。否则, 当你更新核心主题时, 你的更改将被覆盖。你可以向此行添加一些逻辑, 并从中剪切和粘贴。我无法对此进行测试, 因为我没有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
}
?>
评论前必须登录!
注册