You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress中获取跳转至文章前的上一页特定分类名称

解决方案

因为目标文章属于多个地点分类,无法通过get_category()直接获取来源分类,推荐以下几种可行方案:

1. URL传递分类参数(最可靠)

在分类页面的文章跳转链接中,手动拼接来源分类的标识:

  • 分类页(如Apple Valley分类)的文章链接修改为:
    <a href="<?php echo get_permalink($post->ID); ?>?from_cat=<?php echo get_query_var('category_name'); ?>">
      <?php the_title(); ?>
    </a>
    
  • 在文章页中,获取并解析这个参数:
    if (isset($_GET['from_cat'])) {
        $from_cat_slug = sanitize_text_field($_GET['from_cat']);
        $from_category = get_category_by_slug($from_cat_slug);
        if ($from_category) {
            $from_cat_name = $from_category->name;
            // 输出或使用分类名称
            echo "来源分类:{$from_cat_name}";
        }
    }
    

2. 通过HTTP Referer解析来源(有局限性)

读取上一页的URL,从中提取分类信息:

if (isset($_SERVER['HTTP_REFERER'])) {
    $referer_url = $_SERVER['HTTP_REFERER'];
    // 匹配WordPress分类URL结构,如 example.com/category/apple-valley/
    preg_match('/\/category\/([^\/]+)\//', $referer_url, $matches);
    if (!empty($matches[1])) {
        $from_cat_slug = $matches[1];
        $from_category = get_category_by_slug($from_cat_slug);
        if ($from_category) {
            $from_cat_name = $from_category->name;
            echo "来源分类:{$from_cat_name}";
        }
    }
}

注意:若用户直接输入文章URL、刷新页面或浏览器不发送Referer,此方法失效。

3. 使用Session存储分类信息

在分类页加载时,将当前分类名称存入Session:

// 在分类模板文件顶部开启Session
if (!session_id()) {
    session_start();
}
$current_category = get_queried_object();
if ($current_category instanceof WP_Term && $current_category->taxonomy === 'category') {
    $_SESSION['last_visited_cat'] = $current_category->name;
}

在文章页读取Session中的值:

if (!session_id()) {
    session_start();
}
if (isset($_SESSION['last_visited_cat'])) {
    $from_cat_name = $_SESSION['last_visited_cat'];
    echo "来源分类:{$from_cat_name}";
    // 可选:读取后清除Session,避免后续页面复用
    unset($_SESSION['last_visited_cat']);
}

内容的提问来源于stack exchange,提问作者Edward

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 19:05:20