好的,I\'v找到了一种使用query\\u var的方法。看起来问题是语言环境在加载过程中设置为延迟。
如果存在元字段/值,是否重定向到具有的页面?lang=lang属性,然后基于该属性设置语言环境。
function si_update_locale( $lang ) {
if ( isset( $_GET[\'lang\'] ) && ! empty( $_GET[\'lang\'] ) ) {
if( $_GET[\'lang\'] == \'it\' ) {
$lang = \'it_IT\';
}
}
return $lang;
}
add_filter( \'locale\', \'si_update_locale\' );
function si_load_textdomain(){
$domain = \'textdomain\';
load_theme_textdomain( $domain, trailingslashit( WP_LANG_DIR ) . $domain );
load_theme_textdomain( $domain, get_stylesheet_directory() . \'/lang\' );
load_theme_textdomain( $domain, get_template_directory() . \'/lang\' );
}
add_action( \'after_setup_theme\', \'si_load_textdomain\' );
function si_set_locale() {
$post_id = get_the_ID();
$lang = get_field(\'page_language\', $post_id );
if ( $lang && ! isset( $_GET[\'lang\'] ) ) {
switch ( $lang ) {
case \'it_IT\':
wp_redirect( add_query_arg( array( \'lang\' => \'it\'), get_permalink( $post_id ) ) );
exit;
break;
}
}
}
add_filter( \'template_redirect\', \'si_set_locale\' );