如何获取特定ml_source_elementid的链接元素

时间:2018-10-31 作者:Brad Ahrens

我在我的一个页面上使用了多语言Press*,它是多站点、多语言的。

我试图基于两件事获得页面的永久链接:

1) ml_source_elementid,用于标识页面分组。(即关于我们(EN),Sobre No(PT))。这我提前知道了。在这种情况下,它是92。

2) 当前语言。我可以打电话

mlp_get_current_blog_language(true);
我已经能够使用WordPress general获得永久链接

<?php
    $url = get_the_permalink(92);
    $current_lang = mlp_get_current_blog_language(true);
    $ml_permalink = apply_filters(\'ml_permalink\', $url , $current_lang );
    echo $ml_permalink
?>
你知道我是否可以应用这些过滤器来获取链接吗?还是有更好的方法?

谢谢

*https://multilingualpress.org

1 个回复
最合适的回答,由SO网友:Brad Ahrens 整理而成

所以,我说了一句话,这是可行的,但可能不是最佳实践,特别是如果有针对这种特殊情况的预制函数,这是必须的。

无论如何,我在wp\\u multilingual\\u linked表中进行了一次简单的SQL搜索,查找我想要从中获得链接的ml\\u source\\u elementid。然后,由于我根据语言定义了blog\\u id,我可以通过get\\u the\\u parmalink WordPress内置函数获取链接。

设置语言:

<?php
    $language = mlp_get_current_blog_language(true);
    switch($language) {
        case "en": $blog_id = 1; break;
        case "pt": $blog_id = 2; break;
        case "it": $blog_id = 3; break;
    }
?>
根据永久链接的源元素id搜索永久链接:

<?php
    global $wpdb;
    $result = $wpdb->get_results("SELECT * FROM wp_multilingual_linked WHERE ml_source_elementid = \'92\' and ml_blogid = $blog_id");
    echo get_the_permalink($result->ml_elementid);
?>
请注意,92是我必须在SQL中的wp\\u multilingual\\u链接表中找到的特定source\\u elementid。如果你正在尝试,这对你来说很可能是不同的

谢谢

结束

相关推荐

Bash和PHP exec()中WP-CLI的不同输出

我已安装this package 在WP-CLI上。当我跑步时wp login create 在里面bash 它工作得很好,但是当我跑步的时候exec(\"wp login create\") 在PHP脚本中WP-CLI 返回此错误:错误:“login”不是已注册的wp命令。有关可用命令,请参阅“wp帮助”。你是说“插件”吗?我从中检查了用户exec(\"whoami\") 这是一样的。我怎样才能找到问题?EDIT当我跑步时wp package list 在PHP中,它返回:错误:Composer目录“/