【发布时间】: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 默认变量,但没有一个工作。
我还需要添加其他什么来启用自定义变量,还是我犯了一个愚蠢的错字或什么?
【问题讨论】:
-
我对@987654328@ 有一些奇怪的问题尝试使用其他名称,例如
test,并检查它是否适合您 -
@Shibi,谢谢,但不幸的是没有好处。我刚刚尝试过
test和同样的事情。 -
不是 WordPress 标准,但您可以使用 $_GET 从 url 读取变量。一定要检查
isset( $_GET['pid'] ). -
@BasvanDijk,我确实这么认为,而且似乎确实有效,但仅适用于第二个变量。即
new-post/?test=118和$_GET['test']产生一个空白,但如果我输入一个人工查询变量new-post/?artificial=t&test=118并寻找$_GET['test']我得到118,这很好,也是我想要的,但是$_GET['artificial'](artificial可以成为任何东西)什么也没有。所以如果我总是传入一个人工变量,这将起作用。
标签: wordpress wordpress-theming