2023-01-12 刚刚升级到 Astra 4.0.0,本次版本还是有几个型特性的,比如新增了文章的标题区域,以前只能使用 PageHeader,将整个文章的标题全屏展示,现在可以设置文章标题区域,完整的功能列表,在这里。
不过在使用的过程中,就发现了几个问题,文章做个简单的探索。
1. 文章页面的标题上没有出现标签列表
问题描述:使用了新版本的文章 title,原本展示在标题的上方展示文章的标签,不见了,并且出现了文章元数据之间的分隔符号:/
以前使用的方式这样,修改的代码如下:
add_action( 'astra_single_post_title_before', 'tag_before_title' );
测试良久,才名吧,现在使用了新的布局,应该是更改了 hooks,服务器上搜索,title_before 关键词:
find ./ -name "*.php"|xargs grep title_before
找到了代码文件,./wp-content/themes/astra/inc/blog/blog.php,关键代码:
case 'single-breadcrumb': do_action( 'astra_single_post_banner_breadcrumb_before' ); echo astra_get_breadcrumb(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped do_action( 'astra_single_post_banner_breadcrumb_after' ); break; case 'single-title': do_action( 'astra_single_post_banner_title_before' ); if ( 'page' === $post_type ) { astra_the_title( '<h1 class="entry-title" ' . astra_attr( 'article-title-content-page', array( 'class' => '', ) ) . '>', '</h1>' ); } else { astra_the_title( '<h1 class="entry-title" ' . astra_attr( 'article-title-blog-single', array( 'class' => '', ) ) . '>', '</h1>' ); } do_action( 'astra_single_post_banner_title_before' ); break;
不过奇怪的是这个 astra_single_post_banner_title_before,居然执行了两次,这个也和后面的测试类似,出现了两次标签列表。
问题解决:找到没有执行两次的 action,astra_single_post_banner_breadcrumb_after,在这个位置加入标签列表
add_action( 'astra_single_post_banner_breadcrumb_after', 'tag_before_title' );
2. 首页文章列表中的文章标题上方没有展示标签
问题描述:这个是文章列表页面,原本在文章标题上方展示了标签,现在不见了,使用上述方法,找到关键文件,./wp-content/themes/astra/inc/core/common-functions.php,找到关键代码:
function astra_the_post_title( $before = '', $after = '', $post_id = 0, $echo = true ) { $enabled = apply_filters( 'astra_the_post_title_enabled', true ); if ( $enabled ) { $title = astra_get_the_title( $post_id ); $before = apply_filters( 'astra_the_post_title_before', $before ); $after = apply_filters( 'astra_the_post_title_after', $after ); // This will work same as `the_title` function but with Custom Title if exits. if ( $echo ) { echo $before . $title . $after; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped } else { return $before . $title . $after; } } }
推理来说,应该加入以下:
add_filter('astra_the_post_title_before', 'tag_before_title');
但是刷新后,发现标题虽然出现了,但是标题的样式,丢失了。
问题解决:暂时没有,首页先不展示标签。
3. 后台管理外观自定义页面点击失效
问题描述:自定义页面打开是站点页面,某些链接点击失效,比如从文章页面点击主页,点击有效,但是从主页点击进入文章页面,点击无效。
问题解决:刷新缓存,但是不保证后续不会出现。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。