WP_QUERY提供所有3种语言的WPML

时间:2012-04-06 作者:SickHippie

我在WPML支持论坛上对此有所了解,但我想我也可以在这里问一下。以下是重要信息:我正在运行一个带有自定义帖子类型、自定义字段、自定义所有内容的WP多站点设置。在一个特定的模板文件中,我有一个二级循环,它从不同的博客中提取项目列表。从我收集的信息来看,任何使用WP API的东西都应该只过滤到当前的语言,而不是WP_Query() 我拥有的功能正在这样做。

相关代码:

<?php 
 switch_to_blog(23);
$args = array(\'post_type\' => \'release-notes\',
    \'suppress_filters\' => 0,
    \'meta_query\' => array(
            array(
                \'key\' => \'related_products\',
                \'value\' => $thisproduct,
                \'compare\' => \'LIKE\'
            )
        )
    );
$loop = new WP_Query($args);
if ($loop->have_posts()) {
    echo \'<h2>Release Notes</h2>\';
    while ( $loop->have_posts() ) : $loop->the_post();
        //echo \'<pre>\';
        //print_r($post);
        //echo \'</pre>\';
        $post_link = ($post->post_name);
        echo \'<p><a class="text-link" href="\' . get_permalink() . \'">\' . get_the_title() . \'</a></p>\';
    endwhile; // foreach($posts
} // if ($results
restore_current_blog();
?>
这里的问题有两个:首先,它返回每种语言的结果,而不是当前语言的结果-同一篇文章,三次(EN、FR、DE)。第二,结果来自get_permalink() 完全错了-它吐出来了http://www.mysite.com/blog23name/postname 而不是http://www.mysite.com/blog23name/lang/posttype/postname - “编辑帖子”页面上显示的自定义永久链接。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:SickHippie 整理而成

我的解决方案是在我调用它的站点上注册自定义帖子类型,然后在WPML的设置中将它们设置为翻译。这是在WPML->翻译管理->多语言内容设置中,位于底部。我假设它的工作原理是,当它没有来自的正确信息时,诱使WP使用该站点的重写/翻译规则switch_to_blog().

结束

相关推荐

在MultiSite中的循环外部获取_Author_meta的$user_id

因此,我目前正在运行一个多站点安装,超级管理员将创建所有新站点。我们使用的其中一个模板有一个贷款官员的博客页面。我正在扩展用户配置文件,以便新用户可以输入需要在其页面上显示的关键数据。除了创建站点时自动添加的超级管理员之外,每个站点只有一个用户。我发现,如果要使用该函数,需要指定用户IDthe_author_meta(); 循环外部。这是我的问题。我无法在模板中输入ID,因为每个新的贷款官员都将使用相同的主题模板。那么,如何使这些字段成为动态的呢?下面是配置文件部分的图像,以便LO在视觉上有所帮