如何重写单个类别链接以指向自定义页面?

时间:2018-10-27 作者:David Barclay

我有猫、狗和兔子。

我想把在前端列出类别时用于“狗”的链接改为自定义页面,而不是类别存档。

3 个回复
最合适的回答,由SO网友:JHoffmann 整理而成

您的目标似乎是更改列出类别时输出的链接,而不是像我上次的回答所假设的那样,将现有链接指向不同的页面。因此,我将用不同的解决方案尝试不同的答案。

使用过滤器term_link 在函数中get_term_link() 您可以更改为特定类别生成的链接。

function wpse_317747_filter_term_link( $termlink, $term, $taxonomy ) {
    if ( "category" !== $taxonomy || "dogs" !== $term->slug ) {
        return $termlink;
    }
    return get_permalink( $target_page_id );
}
add_filter( "term_link", "wpse_317747_filter_term_link", 10, 3 );
如果使用,则会更改生成的链接category 分类法和当前术语slug是dogs. 刚刚设置好$target_page_id 与您希望链接指向的页面相对应。

SO网友:JHoffmann

对于类别的特殊行为,可以为特定类别添加模板文件。此类文件称为Taxonomy Templates. 创建文件“类别狗”。当请求带有slug“dogs”的类别时,主题目录中的php将使wordpress加载此文件。作为新文件的模型,您可以复制原始类别。php´在您的主题中,或者只是将用户重定向到另一个现有页面。

SO网友:SCor

根据您显示类别的方式,您可以创建一个菜单,其中指向狗的链接是一个页面,而不是类别。你有狗类的帖子吗?

结束