基于语言的wp显着主题社交媒体

问题描述 投票:0回答:1

我正在使用显着主题,它似乎不支持基于当前语言的不同社交媒体。

为了解决这个问题,我修改了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执行此操作是第一个查看但无法找到为复选框设置不同值的方法的选项。

php wordpress wordpress-theming wpml
1个回答
0
投票

只需在第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
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.