您可能希望筛选类别链接以将自定义变量添加到类别链接。您可以使用get_term_link
筛选以筛选类别链接地址
以下是一个非常基本的想法:
假设我们(摘自OP)只需要将自定义变量添加到属于内置分类法的术语中category
, 只有当我们在一个真实的页面上,并且我们想将页面ID作为值添加到URL中时,我们才能创建一个过滤器函数来完成这项工作,并使用add_query_arg()
, 我们可以添加一个新的查询变量,让我们调用它frompage
, 到URL。
这是一个基本函数,您可以根据需要进行扩展和修改。我对代码进行了注释,使其易于理解
add_filter( \'term_link\', function ( $termlink, $term, $taxonomy )
{
// If this is not a page, return the unmodified term link
if ( !is_page() ) // Change this to what is specific to your needs
return $termlink;
// Only target the build in taxonomy \'category\'
if ( $taxonomy !== \'category\' ) // Adjust to your exact taxonomy
return $termlink;
// Get the current viewed paged id
$current_id = get_queried_object_id();
// Make sure we actually have a value, if not, return the term link
if ( $current_id == 0 )
return $termlink;
// If we reached this point, we are good to go and should add our query var to the URL
$termlink = esc_url( add_query_arg( [\'frompage\' => $current_id], $termlink ) );
return $termlink;
}, 10, 3 );
然后可以按如下方式检索该值:
$value = filter_input( INPUT_GET, \'frompage\', FILTER_VALIDATE_INT );
if ( $value )
echo $value;
请注意,我使用了
filter_input
在这里获取
$_GET
价值那是因为
filter_input
验证传递的值是否存在,并返回该值或返回false。此外,在这种情况下,您还可以传递一个用于该值的过滤器
FILTER_VALIDATE_INT
. 总之,这是一种比
$_GET( \'frompage
)`