带有WP_Query的WPML支持全部3种语言[关闭]


8

在WPML支持论坛上我对此有一些了解,但我想我也可以在这里提问。这是重要的信息:我正在使用自定义帖子类型,自定义字段,自定义所有内容来运行WP Multisite设置。在一个特定的模板文件中,我有一个辅助循环,该循环从另一个博客中提取项目列表。从我收集到的信息来看,使用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
IMO,在这里问高级插件问题是不公平的……
brasofilo 2012年

“不公平”?用什么方式?如果在此处无法查询,为什么会有WPML标签?再次检查常见问题,伙伴。它是根据GPL(甚至是高级版本)获得许可的,因此从技术上讲,我可以发布任何相关的代码块,以供其他人查看以进行故障排除。也就是说,至少其中一个问题是WordPress的核心问题- switch_to_blog()不会传递自定义帖子类型的固定链接get_permalink()-使其成为一个很好的地方。不过,感谢您的不赞成票,它比实际提出一个2个月大的问题的答案要有用得多。
SickHippie 2012年

他们有“免费版本”吗?如果他们这样做了,对不起,我不知道...如果他们不这样做,拥有一个标签不会成为任何GPL的借口...
brasofilo 2012年

2
是的,我应该在投票之前将它带到Meta中,现在我不能撤消它。感谢您的支持,@ Bainternet。SickHippie,您似乎还没有在他们的论坛上得到答案,希望有个好人,同时修改旧的问题,偶然发现并赞成。致以最诚挚的问候,并对错误表示抱歉。
brasofilo 2012年

5
@brasofilo-不用担心,队友。昨天我有点紧张,为我的进取心表示歉意。这是没有必要的,非常抱歉。
SickHippie 2012年

Answers:


2

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.