1

设置自定义帖子默认语言。我创建了一个带有 pod 的自定义帖子,并安装了 WPML 插件。我只想以不是网站默认语言的语言显示此自定义帖子,以便网址为http://example.com/en/postname而不是http://example.com/postname。为此,我希望当我为这些自定义帖子创建新帖子时,它们的默认语言应该是英语而不是网站的默认语言。否则,我每次都必须为每个帖子更改帖子的默认语言。如何为自定义帖子设置另一种默认语言而不是网站的默认语言?

4

2 回答 2

1
add_action('save_post', 'my_english_halacha');

function my_english_halacha($post_id) {
$post_type = get_post_type($post_id);

switch( $post_type )
{
case 'english_halacha':
     $set_language_args = array(
        'element_id'    => $post_id,
        'element_type'  => 'post_english_halacha',
        'language_code'   => 'en',
        'rewrite'           => array('slug' => ( (ICL_LANGUAGE_CODE=='en') ) ),
        'source_language_code' => 'he',


    );
global $sitepress;

$sitepress->switch_lang('en');
    do_action( 'wpml_set_element_language_details', $set_language_args );




break;

  case 'spanish_halacha':
     $set_language_args = array(
        'element_id'    => $post_id,
        'element_type'  => 'post_spanish_halacha',
        'language_code'   => 'es',
        'rewrite'           => array('slug' => ( (ICL_LANGUAGE_CODE=='es') )       ),
        'source_language_code' => 'he',


    );
global $sitepress;

 $sitepress->switch_lang('es');
    do_action( 'wpml_set_element_language_details', $set_language_args );




break;
  } 

  }
于 2017-02-22T18:21:22.887 回答
0

将以下操作添加到functions.php,我希望问题会得到解决:

function update_post_language( $post_id ) {
$post_type = get_post_type($post_id);
if ($post_type == 'dwqa-question' || $post_type == 'dwqa-answer') {
    $term = term_exists('ar', 'language');
    if ($term !== 0 && $term !== null`enter code here`) {
        wp_set_post_terms( $post_id, array ('ar'), 'language', true );
    }
}
}
add_action( 'save_post', 'update_post_language' );
于 2016-06-05T22:01:42.167 回答