【问题标题】:How can I show a list of custom post type in different languages, using WPML plugin?如何使用 WPML 插件显示不同语言的自定义帖子类型列表?
【发布时间】:2014-11-14 14:28:08
【问题描述】:

在文件 functions.php 我创建了一个自定义类别

$labels = array(
    'name' => _x('Partners', 'post type general name'),
    'singular_name' => _x('Partners', 'post type singular name'),
    'add_new' => _x('Add New', 'partners'),
    'add_new_item' => __("Add New Partners"),
    'edit_item' => __("Edit Partners"),
    'new_item' => __("New Partners"),
    'view_item' => __("View Partners"),
    'search_items' => __("Search Partners"),
    'not_found' =>  __('No partners found'),
    'not_found_in_trash' => __('No partners found in Trash'), 
    'parent_item_colon' => ''
  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'menu_icon' => 'dashicons-groups',
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','thumbnail','excerpt', 'editor')
  ); 
  register_post_type('partners',$args);

在我写的合作伙伴模板中:

<?php
        $args = array(
        'posts_per_page' => -1,  // Get all posts
        'post_type' => 'partners',  // Query for the default Post type
        'order_by' => 'post_date'  // Order by date posted
        );
        $last_five_posts = get_posts( $args );


        foreach ( $last_five_posts as $post ) : setup_postdata( $post );



?>

而且效果很好。该页面显示了我在自定义类别中编辑的所有帖子。

问题出在翻译上。我使用 WMPL 插件,我使用两种语言:意大利语和英语。合作伙伴页面显示两种语言:

意大利页面:

  • 发布 ORIGINAL1

  • 发布 TRANSLATED1

  • 发布 ORIGINAL2

  • 发布 TRANSLATED2

  • ...

英文页面:

  • 发布 ORIGINAL1

  • 发布 TRANSLATED1

  • 发布 ORIGINAL2

  • 发布 TRANSLATED2

  • ...

我认为问题出在代码上,我遗漏了一些东西。

你知道怎么解决吗?

【问题讨论】:

    标签: php wordpress custom-post-type wpml


    【解决方案1】:

    支持人员回答了我。在 Partner 的模板中,我没有使用 get_posts() 函数,而是使用了 WP_Query 类:

    <?php
        $args = array(
        'posts_per_page' => -1,  // Get all posts
        'post_type' => 'partners',  // Query for the default Post type
        'order_by' => 'post_date'  // Order by date posted
        );
        $last_five_posts = new WP_Query( $args );
    
    
        if( $last_five_posts->have_posts() ): while( $last_five_posts->have_posts() ) : $last_five_posts->the_post();
      ?>
    

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      相关资源
      最近更新 更多