Search code examples
phpwordpresswpml

Wordpress custom post language WPML


Hi I have a custom type post and it has a translation. When am calling all the custom post i get every items in double. Is there a way to check which language is the post set to?

Thank you


Solution

  • I think this could help you http://wpml.org/faq/how-to-translate-custom-types/

    Assuming that you setted up your custom type post, according to wpml: If you are using the Translation Management module, go to WPML->Translation Managementand click on the Multilingual Content Setup tab. Otherwise, without the Translation Management module, you will find these options under WPML->Translation Options.

    Edit:

    <?php
      // set up or arguments for our custom query
      $paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
      $query_args = array(
        'post_type' => 'tutorials',
        'posts_per_page' => 5,
        'paged' => $paged
      );
      // create a new instance of WP_Query
      $the_query = new WP_Query( $query_args );
    ?>
    
    <?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); // run the loop
    
    //I try to access to the translated object, where ICL_LANGUAGE_CODE specify the language
    $translated = icl_object_id($post->ID,'tutorials',ICL_LANGUAGE_CODE);
    
     ?>
      <article>
        <h1><?php echo get_the_title($translated->ID); ?></h1>
        <div class="excerpt">
          <?php echo get_the_excerpt($translated->ID); ?>
        </div>
      </article>
    <?php endwhile; ?>
    
    <?php if ($the_query->max_num_pages > 1) { // check if the max number of pages is greater than 1  ?>
      <nav class="prev-next-posts">
        <div class="prev-posts-link">
          <?php echo get_next_posts_link( 'Older Entries', $the_query->max_num_pages ); // display older posts link ?>
        </div>
        <div class="next-posts-link">
          <?php echo get_previous_posts_link( 'Newer Entries' ); // display newer posts link ?>
        </div>
      </nav>
    <?php } ?>
    
    <?php else: ?>
      <article>
        <h1>Sorry...</h1>
        <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
      </article>
    <?php endif; ?>