【问题标题】:link to custom taxonomy by id通过 id 链接到自定义分类法
【发布时间】:2012-04-23 18:12:38
【问题描述】:

通过一系列具体要求,我发现自己需要使用其术语 ID 链接到自定义分类类别...

我有这个 - 显示所有分类法的链接 - 我希望更改它,使其仅显示分类法的链接,其中术语 id 从我正在使用的自定义字段中动态提取。

$taxonomy = 'event-categories';
$terms = get_terms($taxonomy);
if ($terms) {
foreach($terms as $term) {
echo '<li><a href="http:/mysite.com/events/categories/project-events/' . $term->slug . '">' . $term->name .'</a></li>';
 }
};

基本上我需要“link_to_taxonomy_category(x)”,其中 x = term_id

谢谢

【问题讨论】:

    标签: wordpress custom-taxonomy


    【解决方案1】:

    如果您有单个term_id 例如:10、自定义分类series,那么您可以使用以下代码获取分类术语链接。

    注意:将 10 更改为您的 term_id 变量,并将“系列”更改为您的分类。

    $term = get_term( 10, 'series' );
    $term_link = get_term_link( $term );
    echo '<a href="' . $term_link . '">View All</a>';
    

    【讨论】:

    • 这仅显示默认类别,不显示自定义分类。
    • 在 get_term() 的第二个参数中传递分类名称。
    【解决方案2】:

    您要查找的函数是get_term_link。它需要一个术语对象、ID 或 slug 以及一个分类名称,并返回一个指向术语登录页面的 URL。

    作为旁注,硬编码上面示例中的链接是脆弱的 - 始终保持您的代码尽可能可移植。如果该站点被移动到不同的域,该链接将会中断。 WordPress 有几个功能可以根据当前安装环境动态生成链接。 get_term_link 就是一个例子。

    来自Codex

    $terms = get_terms('species');
    echo '<ul>';
    foreach ($terms as $term) {
        echo '<li><a href="'.get_term_link($term->slug, 'species').'">'.$term->name.'</a></li>';
    }
    echo '</ul>';
    

    【讨论】:

    • 嗨,谢谢 - 我已经尝试过,但无法让它工作,我现在再试一次。为了清楚问题,硬代码就在那里......
    • 是的 - 无法真正弄清楚如何使用它 - 尝试了 $terms = get_terms('event-categories'); echo '&lt;ul&gt;'; foreach ($terms as $term) { echo '&lt;li&gt;&lt;a href="'.get_term_link($term-&gt;slug, '20').'"&gt;'.$term-&gt;name.'&lt;/a&gt;&lt;/li&gt;'; } echo '&lt;/ul&gt;'; 并收到以下错误“可捕获的致命错误:WP_Error 类的对象无法转换为...中的字符串”
    • get_term_link 的第二个参数应该是分类的名称(在本例中为“事件类别”)。如果术语或分类不存在,它将返回类 WP_Error 的对象。您可以通过将错误消息保存到变量(即 $term_link)并在回显之前检查它来捕获错误消息的值:if ( is_wp_error($term_link) ) echo $term_link-&gt;get_error_message();
    • $terms = get_terms('event-categories'); echo '&lt;ul&gt;'; foreach ($terms as $term) { echo '&lt;li&gt;&lt;a href="'.get_term_link($term-&gt;slug, 'event-categories').'"&gt;'.$term-&gt;name.'&lt;/a&gt;&lt;/li&gt;'; } echo '&lt;/ul&gt;';
    • 然后不要遍历这些术语。如果您有术语 ID,您只需要:get_term_link( $term_id, 'event-categories' );。这将返回您在“事件类别”分类中查找的特定术语的 URL。
    猜你喜欢
    • 1970-01-01
    • 2017-07-29
    • 2020-05-07
    • 2014-09-30
    • 1970-01-01
    • 2016-01-14
    • 2020-12-30
    • 2023-04-10
    • 1970-01-01
    相关资源
    最近更新 更多