每次更新都导致代码失效,直接备份一份:
/**
* Remove Author Link from Astra Theme
*/
add_filter( 'astra_post_author', 'remove_author_link_from_astra' );
function remove_author_link_from_astra( $output ) {
$author = get_the_author();
// 重新格式化作者元数据,去掉 <a> 标签
return '<span class="author-name">' . esc_html( $author ) . '</span>';
}
function custom_astra_read_more_text() {
return '阅读全文 →'; // 将 '阅读全文' 修改为你需要的文本
}
add_filter('astra_post_read_more', 'custom_astra_read_more_text');
add_filter( 'astra_single_post_navigation', 'astra_change_next_prev_text' );
/**
* 修改单篇文章的上下篇导航文字
*
* @param array $args 上一篇/下一篇链接的参数。
* @return array
*/
function astra_change_next_prev_text( $args ) {
// 设置您的自定义文本
$prev_text = '« 上一篇: %title'; // 可以在这里修改箭头或加上文字
$next_text = '下一篇: %title »';
$args['prev_text'] = $prev_text;
$args['next_text'] = $next_text;
return $args;
}
/**
* 全局替换 WordPress 分页系统中的 Previous 和 Next
*/
add_filter( 'get_the_posts_pagination', function( $html ) {
$html = str_replace( 'Previous', '上一页', $html );
$html = str_replace( 'Next', '下一页', $html );
return $html;
}, 999 );
add_filter( 'paginate_links_output', function( $r, $args ) {
$r = str_replace( 'Previous', '上一页', $r );
$r = str_replace( 'Next', '下一页', $r );
return $r;
}, 999, 2 );
/**
* Astra 主题单篇文章页下方显示分类和标签
*/
function custom_display_tags_and_categories() {
// 仅在单篇文章页显示
if ( is_single() ) {
echo '<div class="custom-post-meta">';
// 显示分类
if ( get_the_category() ) {
echo '<div class="post-categories">' . esc_html__('分类: ', 'astra') . get_the_category_list(', ') . '</div>';
}
// 显示标签
if ( get_the_tags() ) {
echo '<div class="post-tags">' . get_the_tag_list(esc_html__('标签: ', 'astra') , ', ') . '</div>';
}
echo '</div>';
}
}
// 将此函数挂载到 astra_entry_after (内容下方)
add_action( 'astra_entry_after', 'custom_display_tags_and_categories' );
/**
* 在 Astra 主题的日期后面追加 WP-PostViews 浏览量
*/
add_filter( 'astra_post_date', 'custom_astra_post_date_with_views' );
function custom_astra_post_date_with_views( $output ) {
// 仅在前端单篇文章或文章列表/归档页生效
if ( ! is_admin() && function_exists( 'the_views' ) ) {
// 获取 WP-PostViews 的浏览量 HTML 标签,传递 false 表示不直接 echo 而是返回字符串
$views = the_views( false );
if ( $views ) {
// 在原有的日期 HTML 结构后追加浏览量,并用 span 标签包裹方便调整样式
$output .= '<span class="postview-meta" style="margin-left: 1px;">/ ' . $views . '</span>';
}
}
return $output;
}
add_filter('request', function($query_vars) {
if(!isset($_GET['page_id']) && !isset($_GET['pagename']) && !empty($query_vars['pagename'])){
$pagename = $query_vars['pagename'];
$categories = get_categories(['hide_empty'=>false]);
$categories = wp_list_pluck($categories, 'slug');
if(in_array($pagename, $categories)){
$query_vars['category_name'] = $query_vars['pagename'];
unset($query_vars['pagename']);
}
}
return $query_vars;
});
add_filter('pre_term_link', function($term_link, $term){
if($term->taxonomy == 'category'){
return '%category%';
}
return $term_link;
}, 10, 2);
/**
* Astra / WordPress 分类页面自定义 SEO 标题
*/
add_filter( 'pre_get_document_title', 'custom_category_seo_title' );
function custom_category_seo_title( $title ) {
// 确保当前页面是文章分类归档页
if ( is_category() ) {
// 获取当前分类的 ID
$category_id = get_queried_object_id();
// 根据分类 ID 或别名 (Slug) 设置自定义标题
switch ( $category_id ) {
case 12: // 将 12 替换为你实际的分类 ID
$title = '这是分类 12 的自定义 SEO 标题 | 网站名称';
break;
case 15: // 替换为另一个分类 ID
$title = '这是分类 15 的自定义 SEO 标题 | 网站名称';
break;
default:
// 如果分类没有单独设置,则显示默认的分类名称加后缀
$title = single_cat_title( '', false ) . ' - 精彩文章分类 - 网站名称';
break;
}
}
return $title;
}
👋 感谢您的观看!
© 版权声明
THE END
