使用 WPML 从 PHP 调用 Wordpress 中的特定页面
Call a specific page in Wordpress from PHP with WPML
我有一个适用于 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;
?>
要在 WPML 中获取当前选择的语言,请使用以下代码:
global $sitepress;
$language = $sitepress->get_current_language();
这将 return 两个字母的语言代码,例如 'fr' 代表法语或 'it' 代表意大利语。
但是,我认为您想要做的是用另一种语言找出特定 post 的 link。如果您只是需要根据具体情况执行此操作,Barry Kooij wrote a function 可以完成此操作。
如果您想要让用户可以选择切换他们查看 post 的语言,您应该考虑使用 WPML 的语言切换器或 creating a custom WPML language switcher。
我有一个适用于 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;
?>
要在 WPML 中获取当前选择的语言,请使用以下代码:
global $sitepress;
$language = $sitepress->get_current_language();
这将 return 两个字母的语言代码,例如 'fr' 代表法语或 'it' 代表意大利语。
但是,我认为您想要做的是用另一种语言找出特定 post 的 link。如果您只是需要根据具体情况执行此操作,Barry Kooij wrote a function 可以完成此操作。
如果您想要让用户可以选择切换他们查看 post 的语言,您应该考虑使用 WPML 的语言切换器或 creating a custom WPML language switcher。