我想使用jQuery在Wordpress的贴子页面上的标签前面预先添加一个标签(#)。此代码不起作用:
$(\'div.tags a\').prepend(\'#\');
这是php:
<div class="tags">
<?php the_tags( \' \', \' \', \'\' ); ?>
</div>
我不希望“#”是存储的标记的一部分,只是为了显示而添加的。非常感谢。
最合适的回答,由SO网友:Zenneson 整理而成
我不想编辑标签本身,我只是想添加“#”,以便于视觉效果。
我决定将此添加到CSS中以解决此问题:
.tags a::before {
content: \'#\';
}
感谢您的时间和投入。
SO网友:Pieter Goosen
使用JS并不是最好的解决方案,因为它可以在客户端禁用。您也可以使用类似PHP的正则表达式和DOM来更改链接,但我确实认为实现这一点的最可靠方法是通过term_link-post_tag
filter 位于get_the_term_list()
function 所使用的get_the_tag_list
依次用于the_tags()
.
以下内容未经测试,但您可以尝试以下内容
add_filter( \'term_link-post_tag\', function ( $links )
{
// Return if $links are empty
if ( empty( $links ) )
return $links;
// Reset $links to an empty array
unset ( $links );
$links = [];
// Get the current post ID
$id = get_the_ID();
// Get all the tags attached to the post
$taxonomy = \'post_tag\';
$terms = get_the_terms( $id, $taxonomy );
// Make double sure we have tags
if ( !$terms )
return $links;
// Loop through the tags and build the links
foreach ( $terms as $term ) {
$link = get_term_link( $term, $taxonomy );
// Here we add our hastag, so we get #Tag Name with link
$links[] = \'<a href="\' . esc_url( $link ) . \'" rel="tag">#\' . $term->name . \'</a>\';
}
return $links;
});