我正在尝试显示我的工作类别中的术语列表。我尝试了以下方法:
function job_listing_taxonomy_list( $taxonomy,$hide ) {
$args = array(\'order\'=>\'ASC\',\'hide_empty\'=>$hide);
$terms = get_terms( $taxonomy, $args );
if ( $terms ) {
printf( \'<ul name="%s">\', esc_attr( $taxonomy ) );
foreach ( $terms as $term ) {
printf( \'<li><a href="http://example.com/?s=&\'.$taxonomy.\'=%s">%s</a></li>\', esc_attr( $term->slug ), esc_html( $term->name ) );
}
print( \'</ul>\' );
}
}
但是,当我单击生成的其中一个术语的链接时,例如:
http://example.com/?s=&job_listing_category=finance
更改为:
http://example.com/?s?job_listing_category=finance
为什么=&;正在更改为“?”?我花了整整半个小时在谷歌和这个网站上寻找答案,但我甚至都不知道该找什么!另一方面,我之前确实安装了一个自定义的Post类型Permalink重写插件,这导致了一个严格的标准错误,但在禁用它之后(结果证明我没有使用它),我现在得到了这个错误。。。。
有什么建议吗?
编辑:我已尝试替换(&A);使用(&;);,但没什么不同
SO网友:tristanojbacon
在考虑了@Milo的评论后,我删除了s=
从链接的参数,它的工作!
这是我的最终代码:
function job_listing_taxonomy_list( $taxonomy,$hide ) {
$args = array(\'order\'=>\'ASC\',\'hide_empty\'=>$hide);
$terms = get_terms( $taxonomy, $args );
if ( $terms ) {
printf( \'<ul name="%s">\', esc_attr( $taxonomy ) );
foreach ( $terms as $term ) {
printf( \'<li><a href="%s/?\'.$taxonomy.\'=%s">%s</a></li>\', site_url() ,esc_attr( $term->slug ), esc_html( $term->name ) );
}
print( \'</ul>\' );
}
}
不同的是我删除了
s=
参数,并添加
site_url()
这样,当站点移动到实时服务器时,我就不必更改它。
我有s=
首先,这是因为我在调整搜索栏中的搜索URL,所以在我不了解的情况下,我认为它需要s=
为了发挥作用。显然不是!