gpt4 book ai didi

php - 添加过滤器以将类添加到 WordPress 中的标记链接

转载 作者:行者123 更新时间:2023-12-02 01:45:13 32 4
gpt4 key购买 nike

我想添加一个过滤器来修改WP中get_the_tag_list生成的链接。它调用 get_the_term_list

function get_the_term_list( $id, $taxonomy, $before = '', $sep = '', $after = '' ) {
$terms = get_the_terms( $id, $taxonomy );

if ( is_wp_error( $terms ) )
return $terms;

if ( empty( $terms ) )
return false;

$links = array();

foreach ( $terms as $term ) {
$link = get_term_link( $term, $taxonomy );
if ( is_wp_error( $link ) ) {
return $link;
}
$links[] = '<a href="' . esc_url( $link ) . '" rel="tag">' . $term->name . '</a>';
}

我想添加class="tag",但我不确定如何为我的functions.php文件编写过滤器以仅针对$links[] 该功能的一部分。我可以排除旧的链接集并以某种方式添加我修改过的链接集吗?

我想添加这样的东西,但我不知何故出错了:

add_filter('get_the_term_list','replace_content');
function replace_content($links[])
{
$links[] = str_replace('<a href="', '<a class="tag" href="', $links[]);
return $links[];
}

最佳答案

你犯了几个错误。首先在 get_the_term_list 上添加过滤器将不起作用,因为它不是过滤器。如果您查看 get_the_term_list 的代码,您会看到类似这样的行(取决于您的 WP 版本)

$term_links = apply_filters( "term_links-$taxonomy", $term_links );

因此,您可以在分类法为标签的情况下在 term_links-$taxonomy 上添加过滤器。

您犯的第二个错误是 str_replace 与数组结合使用。如果要使用数组,则不需要在变量后面添加 []。这仅用于将 = 之后的部分分配给数组的下一项。在这种情况下,您对整个数组执行 str_replace,因此您应该在分配和中使用 $links 而不是 $links[] str_replace 否则,您将在当前数组的所有链接之后添加一个新数组(带有字符串替换)。

add_filter( "term_links-post_tag", 'add_tag_class');

function add_tag_class($links) {
return str_replace('<a href="', '<a class="tag" href="', $links);
}

关于php - 添加过滤器以将类添加到 WordPress 中的标记链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32154011/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com