wpml-在存档页显示所有CPT,如果未翻译,则显示默认语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpml-在存档页显示所有CPT,如果未翻译,则显示默认语言相关的知识,希望对你有一定的参考价值。

shows list of cpt for example on archive page when wpml is installed. if particular post has no translation, it shows it in default language
  1. <?php
  2.  
  3. // save current language
  4. $current_lang = apply_filters( 'wpml_current_language', null );
  5.  
  6. //get the default language
  7. $default_lang = apply_filters( 'wpml_default_language', null );
  8. //fetch posts in default language
  9. do_action( 'wpml_switch_language', $default_lang);
  10. //query args
  11. $custom_query_args = array(
  12. 'cat' => 1
  13. );
  14. //build query
  15. $custom_query = new wp_query($custom_query_args);
  16. //loop
  17. while ( $custom_query->have_posts() ) : $custom_query->the_post();
  18. //check if a translation exist
  19. $t_post_id = apply_filters( 'wpml_object_id', $post->ID, 'post', false, $current_lang );
  20. if(!is_null($t_post_id)){
  21. $t_post = get_post( $t_post_id);
  22. ?>
  23. <a href="<?php echo get_permalink($t_post_id); ?>" title="<?php echo get_the_title($t_post_id); ?>"><?php echo get_the_title($t_post_id); ?></a>
  24. <?php
  25. }
  26. //no translation? display default language
  27. else{ ?>
  28. <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
  29. <?php
  30. }
  31. endwhile;
  32. wp_reset_query();
  33. do_action( 'wpml_switch_language', $current_lang);

以上是关于wpml-在存档页显示所有CPT,如果未翻译,则显示默认语言的主要内容,如果未能解决你的问题,请参考以下文章

php 获取CPT存档的所有帖子

我应该使用哪种 WPML 字符串翻译方法?

WP-突出显示导航项,用于自定义post类型存档和单个

从存档调用的 CPT 页面上的 Wordpress 上一个和下一个链接

WordPress插件配置没有权限

php 翻译主题我的登录操作链接与WPML