0

我有一个适用于 Blocks 的 Wordpress 模板。您在块中映射一个页面,然后将此块添加到您的主页上。但是,一个 Block 没有映射选项,所以我做了以下操作。

我从这个特定的块中打开了 PHP 文件,并添加了一个代码来调用带有 ID 的页面。

<?php
$my_id = 1575;
$post_id_1575 = get_post($my_id);
$content = $post_id_1575->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;
?>

该页面有一个ID=1575. 但是,当我使用 WPML 复制页面并用另一种语言创建它时,它会创建一个具有新 ID 的新页面。有什么方法可以检查所选 PHP 上的语言,然后调用另一个页面 id?

例如:

<?php

if (language == "en") {
    $my_id = 1575;
} else {
    $my_id = 1580;
}
$post_id_1575 = get_post($my_id);
    $content = $post_id_1575->post_content;
    $content = apply_filters('the_content', $content);
    $content = str_replace(']]>', ']]>', $content);
    echo $content;
?>
4

1 回答 1

1

要在 WPML 中获取当前选择的语言,请使用以下代码:

global $sitepress;
$language = $sitepress->get_current_language();

这将返回两个字母的语言代码,例如法语的“fr”或意大利语的“it”。

但是,我认为您要做的是找出指向不同语言的特定帖子的链接。如果您只需要根据具体情况执行此操作,Barry Kooij编写了一个函数来完成此操作。

如果您想要让用户选择切换他们查看帖子的语言,您应该考虑使用 WPML 的语言切换器或创建自定义 WPML 语言切换器

于 2015-01-21T23:51:55.410 回答