【问题标题】:Wordpress auto-generated "canonical" links - how to add a custom URL parameter?Wordpress 自动生成的“规范”链接 - 如何添加自定义 URL 参数?
【发布时间】:2011-01-26 16:49:45
【问题描述】:

有谁知道如何修改 Wordpress 规范链接以添加自定义 URL 参数?

我有一个 Wordpress 网站,其中有一个查询单独(非 Wordpress)数据库的页面。我传递了 URL 参数“pubID”来显示单个书籍,它工作正常。

示例:http://www.uglyducklingpresse.org/catalog/browse/item/?pubID=63

但是各个书页没有在 Google 中正确显示 - ?pubID 参数已被删除。

我认为这可能是因为所有项目页面在源中都有相同的自动生成的“规范”URL 链接标签 - 一个去掉了“pubID”参数的标签。

示例:link rel='canonical' href='http://www.uglyducklingpresse.org/catalog/browse/item/'

有没有办法编辑 .htaccess 以将自定义 URL 参数添加到 Wordpress,以便该参数不会被永久链接和“规范”链接剥离?

或者也许还有其他解决方案...谢谢您的任何想法!

【问题讨论】:

    标签: wordpress .htaccess parameters permalinks canonicalization


    【解决方案1】:

    您应该能够将 Wordpress 的 rel_canonical 操作函数替换为您自己的函数,在该函数中(当您的条件满足时)您创建一个附加查询字符串变量的规范链接。以下应该可以工作,尽管您可能需要更改条件以满足您的需求。

    remove_action('wp_head', 'rel_canonical');
    add_action('wp_head', 'my_rel_canonical');
    
    function my_rel_canonical() {
        if (is_page('item') && isset($_GET['pubID'])) {
            global $post;
            $link = get_permalink($post->ID) . '?pubID=' . absint($_GET['pubID']);
            echo "<link rel='canonical' href='$link' />\n";
        } else {
            rel_canonical();
        }
    }
    

    【讨论】:

    • 哇,谢谢理查德!这段代码完全符合我的需要,并且规范链接是固定的。谢谢你的帮助!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多