如何根据原始URL更改URL?

时间:2018-01-16 作者:davemackey

这是我问题的后续内容,“How can I have two different urls for the same page that load two different templates?“”

假设我实现了Milo的答案(注册一个新的重写端点,如果存在端点,则加载另一个模板),那么我如何在页面中动态重写链接以包含该端点(例如app view)。

初始端点将添加到的页面为:https://liquidchurch.com/messages/

根据Milo使用重写端点和页面模板过滤器的指示,我将从移动应用程序传递的url为:https://liquidchurch.com/messages/app-view/

现在在本页上,我点击其中一个系列,例如:

https://liquidchurch.com/sermon-series/divine-direction/

问题是,这将与常规模板一起加载,而不是专门为移动视图创建的模板。因此,我不得不转到这个页面,它应该显示在应用程序视图中。因此,个人应重定向到的实际URL是:

https://liquidchurch.com/sermon-series/divine-direction/app-view/

一个人怎样才能做到这一点?谢谢

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

您可以使用page_link 与相同逻辑的过滤器page_template 过滤其他答案。如果设置了端点查询变量,则指向页面的任何链接都会获得app-view/ 附加内容:

function wpd_page_link( $link, $post_id ){
    global $wp_query;
    if( isset( $wp_query->query_vars[\'app-view\'] ) ){
        return $link . \'app-view/\';
    }
    return $link;
}
add_filter( \'page_link\', \'wpd_page_link\', 10, 2 );

结束

相关推荐

如何在主题上实现wp_is_Mobile?

我只是读了wp_is_mobile function reference 我有一些问题。正如您所看到的,有一行粗体文字的解释:It also should not be used for themes. 我真的不知道这是什么意思。我只想在一个主题中实现这一点,该主题与css媒体查询相结合,用于布局和wp\\u is\\u mobile,用于删除某些元素。例如,我想在大窗口(即桌面)中显示滑块和侧边栏,然后我想在移动设备中删除它们。我可以用css属性隐藏它们display: none; visibility