如何根据语言选择按插件进行筛选

时间:2011-06-10 作者:Dan Elliot

我是这个网站的新手,但看看这里提供的答案的质量,我会在这里呆很长时间:)

好的,首先是一些信息:

我正在开发一个双语网站(英语和日语),使用Wordpress和WPML多语言CMS。该网站是日本东京一家咖啡馆的网站。所有产品名称和说明均用英文书写并翻译成日语。这样,使用WPML可以生成两个相同的产品,一个是英语,一个是日语。鼻涕虫是以产品名称命名的,因此,例如,产品“焦糖卡布奇诺”就有鼻涕虫“焦糖卡布奇诺”。而且,对应的日文版本中有“焦糖卡布奇诺ja”的鼻涕虫。这对于两种语言的所有产品都是一样的,所有日文版本的产品最后都得到了-ja。

现在我的问题来了:

主题作者提供了一个模板,可以生成一个菜单,就像你在餐厅看到的一样。问题是,无论用户选择的网站语言是英语还是日语,菜单都会以两种语言显示所有产品。因此,如果您查看下面的链接,您将看到所有产品都显示了两次。您可以在此处看到当前的情况:

英语:http://www.oasis-radio.net/mobile/wordpress/menu/日语:http://www.oasis-radio.net/mobile/wordpress/ja/menu-ja/

我想做什么:

我想创建某种循环,如果语言选择为英语,则只显示产品的英语版本,同样,如果语言选择为日语,则只显示产品的日语版本。我尝试了一些不同的方法,但似乎没有任何效果。

这是生成菜单页的模板的php代码:

    <?php
/**
 *
 * A custom page template without sidebar, full width.
 *
 * @package WordPress
 * @subpackage Ermark Adora
 *
 */

    get_header();

    echo \'<div class="section clearfix">\';
        if (get_option(\'ermad_products_menu_of_the_day\', \'false\')==\'true\') {
            echo \'<div class="menuDescription">\';       
        }

             if ( have_posts() ) while ( have_posts() ) : the_post(); 
                 if ( is_front_page() ) { 
                    echo \'<h2 class="entry-title">\'.get_the_title().\'</h2>\';
                 } else { 
                    echo \'<h1 class="entry-title">\'.get_the_title().\'</h1>\';
                 } 

                the_content();

                wp_link_pages( array( \'before\' => \'<div class="page-link">\' . __( \'Pages:\', \'adora\' ), \'after\' => \'</div>\' ) );

                edit_post_link( __( \'Edit\', \'adora\' ), \'<span class="edit-link">\', \'</span>\' );
            endwhile;


        if (get_option(\'ermad_products_menu_of_the_day\', \'false\')==\'true\') {
            echo \'</div>\';
            echo \'<div class="menuDayOffer">\';
                echo \'<p>\'.get_option(\'ermad_products_menu_description\', \'Go to admin panel to edit this description, you must add text for two lines for shure.\').\'</p>\';
                loadProductsInOffer();
            echo \'</div>\';
        }

    echo \'</div>\';

    ?>  
        <div class="section hr"></div>

        <div class="section clearfix">

            <div id="wrapper-prices-center" >
            <div id="wrapper-prices-bottom" >
            <div id="wrapper-prices-top" >

            <?php  loadProductsCateg(); ?>

            </div>          
            </div>          
            </div>          
        </div>          

        <div class="section hr"></div>

<?php 

get_footer(); ?>
任何帮助都将不胜感激!

1 个回复
SO网友:Bainternet

WPML有一个称为“自动调整ID”的功能,它可以检测何时加载特定项目并调整ID,以便为活动语言调整结果。

此功能在默认情况下已启用,可以通过WPML->语言访问(在高级模式下可见):

结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴