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

WordPress实现点击指定分类法项展示对应自定义文章内容

实现点击艺术家展示对应歌曲的方案

每个分类法术语(即你创建的艺术家)本身自带term_id(唯一ID)和slug(别名),这两个字段都可以作为标识来实现需求。具体分两步操作:

1. 给艺术家名称添加可点击链接

修改你现有的艺术家列表代码,为每个艺术家名称生成带标识参数的链接:

<?php 
$terms = get_terms([
    'taxonomy' => 'artists',
    'hide_empty' => true, // 可选:只显示关联了歌曲的艺术家
]);

if (!empty($terms)) {
    foreach ($terms as $term) {
        // 以slug为参数构造页面链接,也可以替换成term_id
        $artist_link = add_query_arg('artist_slug', $term->slug, get_permalink());
        // 输出带安全处理的链接与名称
        echo '<a href="' . esc_url($artist_link) . '">' . esc_html($term->name) . '</a>';
        echo "<br><br>";
    }
}
?>

2. 接收参数并查询对应歌曲

在同一页面(或指定的歌曲展示页面)添加以下代码,获取点击传递的参数,然后查询该艺术家下的所有Music类型文章:

<?php
// 检测是否有艺术家参数传入
if (isset($_GET['artist_slug'])) {
    $artist_slug = sanitize_text_field($_GET['artist_slug']);
    
    // 查询该艺术家关联的歌曲
    $songs_query = new WP_Query([
        'post_type' => 'Music',
        'tax_query' => [
            [
                'taxonomy' => 'artists',
                'field'    => 'slug',
                'terms'    => $artist_slug,
            ],
        ],
        'posts_per_page' => -1, // 显示所有歌曲,可按需修改数量
    ]);

    // 渲染歌曲列表
    if ($songs_query->have_posts()) {
        $artist_name = get_term_by('slug', $artist_slug, 'artists')->name;
        echo '<h3>' . esc_html($artist_name) . ' 的歌曲</h3>';
        echo '<ul>';
        while ($songs_query->have_posts()) {
            $songs_query->the_post();
            echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
        }
        echo '</ul>';
        wp_reset_postdata(); // 重置查询状态,避免影响后续内容
    } else {
        echo '<p>该艺术家暂无发布歌曲</p>';
    }
}
?>

补充说明

  • 若想用term_id作为标识,只需把链接参数改为artist_id,查询时将field设为term_id,用$_GET['artist_id']获取值即可。
  • 代码中使用esc_url、esc_html、sanitize_text_field是为了保证输出安全,避免XSS漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 08:10:37