自动检测原始URL中的重定向URL

时间:2017-08-22 作者:Jeff Marx

当您只有源url时,有没有办法在PHP中获取重定向url?例如:-您创建了一篇文章,其中包含test-redirect.- 在文章编辑屏幕内,您可以将该slug更改为test-redirect-new如果你所拥有的只是http://example.com/test-redirect, 是否有可以传递的函数http://example.com/test-redirect 然后回去http://example.com/test-redirect-new? 有没有办法通过wp\\u remote\\u get访问它?提前感谢您提供的任何帮助。

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

您可以这样简单地编写自己的函数:

function get_old_link($url) {
        global $wpdb;

        // get only url path 
        $parse = parse_url($url);
        $path = trim($parse[\'path\'], "/");

        // get last part as slug
        $arr = explode("/", $path);
        $slug = end($arr);

        // find post id by meta_key and meta_value
        $row = $wpdb->get_row("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = \'_wp_old_slug\' AND meta_value = \'{$slug}\'");

        if(!empty($row->post_id))
            return get_permalink($row->post_id);
}
注意:可以改进此功能。我只想告诉你方向。

结束

相关推荐

在调用TEMPLATE_REDIRECT之前重写URL

Logic<我有一个页面模板/blog 其中包含一个“公共”博客</我有一个页面模板/members 这是会员区如果用户输入URL/members/blog 我想在template_redirect 连接并加载显示“私人”博客的自定义模板Problem之前template_redirect 被称为/members/blog 被重新写入/blog 所以我无法加载私人博客页面。重写规则中没有规定要这样做。