如果用户从“page-a”访问类别链接,则将“page-a”插件添加到类别链接

时间:2015-11-11 作者:jas

我有如下区域页面:

http://www.example.com/area1

http://www.example.com/area2
在每个区域页面上显示通用wp菜单categories. 举例说明:

菜单项:

-&燃气轮机;类别1

-&燃气轮机;类别2

我已将永久链接设置如下:

自定义结构:http://www.example.com/artiklar/%post_id%

所以现在我的分类URL是:

http://www.example.com/artiklar/category/category1
但我的要求是当用户访问类别页面时假设category1 从区域页面说出area1 然后类别URL显示如下URL:

http://www.example.com/artiklar/category/category1?tag=area1
如果从区域2访问类别菜单,则应为:

http://www.example.com/artiklar/category/category1?tag=area2
请建议,我在网上搜索不知道如何实现这种结构。

EDIT:

试图更清楚地表明,我想将页面的slug附加到类别URL(用户将从其中访问类别链接的页面,该页面的slug将添加到URL末尾的类别URL)

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

您可能希望筛选类别链接以将自定义变量添加到类别链接。您可以使用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 )`

相关推荐

使用wp_Dropdown_Categories($args)的输出

请温柔点,我对所有这些编码都是新手!我终于找到了如何获得前端下拉字段,允许我从EDD类别中进行选择(我从Codex中获得):<div class=\"gallery-row\"> <li id=\"categories\"> <h2><?php _e( \'Categories:\' ); ?></h2> <form id=\"category-select\" class=\"category-