仅使用变量的自定义查询变量重写

时间:2016-10-02 作者:Swen

在每一篇帖子上都有一个“阅读”(默认)和“倾听”按钮,用户可以单击该按钮而无需刷新页面。

可以通过以下方式直接访问“侦听”选项卡

domain.com/category/post-title/?listen=listen
以及

domain.com/category/post-title/listen/listen
我想编辑重写规则,以便可以访问相同的页面

domain.com/category/post-title/listen
我该怎么做呢?

我的代码:

function cp_narrations_query_vars( $qvars ) {
  $qvars[] = \'listen\';
  return $qvars;
} add_filter( \'query_vars\', \'cp_narrations_query_vars\' , 10, 1 );

function cp_add_my_endpoint(){
    add_rewrite_endpoint( \'listen\', EP_PERMALINK );
} add_action( \'init\', \'cp_add_my_endpoint\' );

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

感谢米洛的评论。

我编写了一个小函数来检查查询变量是否存在。请注意get_query_var(\'listen\') 不适合我。

function is_listen() {    
    $vars = $GLOBALS[\'wp_query\']->query_vars;

    if ( array_key_exists(\'listen\', $vars) ) {
        return true;
    } else {
        return false;
    }       
}
在类似这样的条件中使用它:

if ( is_listen() ) {
    // Display listen tab
}

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?