【问题标题】:Wordpress get_query_var() not workingWordpress get_query_var()不起作用
【发布时间】:2021-06-24 09:12:18
【问题描述】:

我一直试图让 add_query_arg()get_query_var() 在我的自定义 Wordpress 主题中工作几个小时,但没有成功。

我已经搜索并尝试了各种“解决方案”但无济于事,无法解决我所缺少的,任何帮助将不胜感激。

我正在尝试创建一个自定义编辑帖子页面,并希望通过?pid= 变量的 URL 查询变量来传递帖子 ID。 我目前有:

functions.php

function add_query_vars_filter( $vars ){
    $vars[] = "pid";
    return $vars;
}

add_filter( 'query_vars', 'add_query_vars_filter' );

content-single.php

<a href="<?php echo add_query_arg( array('pid' => get_the_ID()), get_site_url() . '/new-post' ) ?>">
    <i class="fa fa-pencil" aria-hidden="true"></i> Edit Post
</a>

page-new-post.php

<div>
    <?php echo 'pid: ' . get_query_var('pid', 'Not Set'); ?>
</div>

结果总是Not Set。 我尝试了其他变量名来确保避免任何 Wordpress 默认变量,但没有一个工作。

我还需要添加其他什么来启用自定义变量,还是我犯了一个愚蠢的错字或什么?

【问题讨论】:

  • 我对@9​​87654328@ 有一些奇怪的问题尝试使用其他名称,例如test,并检查它是否适合您
  • @Shibi,谢谢,但不幸的是没有好处。我刚刚尝试过test 和同样的事情。
  • 不是 WordPress 标准,但您可以使用 $_GET 从 url 读取变量。一定要检查isset( $_GET['pid'] ) .
  • @BasvanDijk,我确实这么认为,而且似乎确实有效,但仅适用于第二个变量。即new-post/?test=118$_GET['test'] 产生一个空白,但如果我输入一个人工查询变量new-post/?artificial=t&amp;test=118 并寻找$_GET['test'] 我得到118,这很好,也是我想要的,但是$_GET['artificial'] (artificial 可以成为任何东西)什么也没有。所以如果我总是传入一个人工变量,这将起作用。

标签: wordpress wordpress-theming


【解决方案1】:

这篇文章有点旧,但这里有一个解决方案。

所以,我遇到了同样的问题,这是我的 nginx 配置文件中的错误。解决方案是在我的 nginx 中传递 $query_string 变量,例如:

location / {
   try_files $uri $uri/ /index.php?$query_string;
}

如果您有 Apache 配置,请尝试搜索类似的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2012-05-03
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多