我遇到了Remove_filter()的问题。删除过滤器有效但不是100%,它不会从Read More中删除第一个 3点,并且它不会替换父节选。< / p>
更清楚我要做的是删除阅读更多并将其更改为 [...] 。
我希望通过子主题 完成此操作。
父主题functions.php代码
function new_excerpt_more($more) {
global $post;
return '… <a href="'. get_permalink($post->ID) . '">' . 'Read More! »' . '</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');
Child-theme functions.php code。
function child_theme_setup() {
// override parent theme's 'more' text for excerpts
remove_filter( 'excerpt_more', 'new_excerpt_more' );
}
add_action( 'after_setup_theme', 'child_theme_setup' );
// Replaces the excerpt "Read More" text by a link
function new_excerpt($more) {
global $post;
return '<a class="moretag" href="'. get_permalink($post->ID) . '">[...] </a>';
}
add_filter('excerpt', 'new_excerpt');
答案 0 :(得分:4)
您只需稍微更新一下代码即可。
// Changing excerpt more
function new_excerpt_more($more) {
global $post;
remove_filter('excerpt_more', 'new_excerpt_more');
return ' <a class="read_more" href="'. get_permalink($post->ID) . '">' . ' do whatever you want to update' . '</a>';
}
add_filter('excerpt_more','new_excerpt_more',11);
钩子的默认优先级是10.父级主题的钩子可能会被添加到第二位,这意味着你的钩子和父钩子具有相同的优先级,但父亲的钩子最后一次它并没有反映出变化。
答案 1 :(得分:3)
如果您不想编写一个新函数,而只希望它在特定区域内工作,则也可以尝试将wp_trim_words()函数与get_the_content()结合使用
示例:
<?php echo wp_trim_words(get_the_content(), 60) ?>
上面的操作是将get_the_content()返回的任何内容减少到所需的单词数(在本例中为60)。