css - WordPress中按字母分组的分类术语链接
问题描述
在我的网站中,我创建了一个名为的自定义分类术语。该术语的所有链接都出现在此处的同一页面中。我设法使它们出现在该页面中的组中,通过字母表的第一个字母和字母导航,同时能够使用functions.php和custom.css文件中的以下自定义,用箭头从每个字母的列表中跳回来。
我有两个问题:
- 页面顶部的字母表没有响应。
- 当我选择一封信时,我不会跳到这封信列表的顶部,而是跳到最后。当我画出返回字母表的箭头时,我没有到达那里,而是在第一个字母列表的顶部。
关于如何解决这两个问题的任何想法?
// Taxonomy term links grouped by alphabets
function sk_alphabetical_archives( $atts ) {
// Pull in shortcode attributes and set defaults
$atts = shortcode_atts( array(
'taxonomy' => 'post_tag'
), $atts, 'alphabetical-archives' );
// https://codex.wordpress.org/Function_Reference/sanitize_key
$taxonomy = sanitize_key( $atts['taxonomy'] );
$jump_links = '';
$list = '';
// get all the terms and store in $terms variable
$terms = get_terms( $taxonomy );
$groups = array();
if ( $terms && is_array( $terms ) ) {
// for each term
foreach( $terms as $term ) {
// obtain the first letter and store it in $first_letter variable
$first_letter = mb_strtoupper( mb_substr( $term->name, 0, 1 ) );
// set the key of $groups array to the first letter and its corresponding value as the term. Remember array has key => value pairs.
$groups[ $first_letter ][] = $term;
}
if ( ! empty( $groups ) ) {
$list .= '<div class="term-groups">';
foreach( $groups as $letter => $terms ) {
$jump_links .= '<a href="#'. $atts['taxonomy'] . '-' . $letter .'">' . $letter . '</a>';
$list .= '<div class="terms-group" id="'. $atts['taxonomy'] . '-' . $letter .'"><h4>' . apply_filters( 'the_title', $letter ) . '<span class="to-top"><a href="#'. $taxonomy .'_top" title="back to top"><i class="icon ion-ios-arrow-thin-up"></i></a></span></h4>';
$list .= '<ul>';
foreach( $terms as $term ) {
$list .= '<li><a href="' . esc_url( get_term_link( $term ) ) . '" alt="' . esc_attr( sprintf( __( 'View all post filed under %s', 'my_localization_domain' ), $term->name ) ) . '">' . $term->name . '</a> <em>(' . $term->count. ')</em></li>';
}
$list .= '</ul></div>';
}
$jump_links_html .= '<div class="alphabetical-terms"><div class="jump-links" id="'. $taxonomy .'_top">' . $jump_links . '</div>';
$list .= '</div></div>';
}
}
// else {
// $list .= '<p>Sorry, no items were found</p>';
// }
return $jump_links_html . $list;
}
add_shortcode( 'alphabetical-archives', 'sk_alphabetical_archives' );
CSS
/* Taxonomy term links grouped by alphabets */
.alphabetical-terms a {
color: #101010;}
.alphabetical-terms a:hover {
color: #488bca;}
.alphabetical-terms a:visited {
color: #202020;}
.jump-links {
padding: 5px 0;}
.jump-links a {
padding: 7px 10px;
margin-right: 5px;
border: 1px solid #202020;}
.jump-links a:hover {
background: #488bca;
color: #fff;
border: 1px solid #202020;}
.terms-group {
overflow: hidden;
border-bottom: 1px solid #eee; padding: 20px 0 10px;
margin: 0 0 10px;}
.terms-group:last-child {
border-bottom:none;}
.jump-links:focus,
.terms-group:focus {
outline: none;}
.terms-group h4 {
color: #202020;}
.terms-group ul {
margin: 0; }
.terms-group ul li {
margin: 0 1.5% 5px 0; list-style-type: none; text-overflow: ellipsis; white-space: nowrap; overflow:hidden; position: relative;
right: 17px;}
.terms-group em {
font-size: 14px; font-style:normal;}
@media only screen and (min-width: 501px) {
.terms-group ul {
-moz-column-count: 3;
-moz-column-gap: 15px;
-webkit-column-count: 3;
-webkit-column-gap: 15px;
column-count: 3;
column-gap: 15px;}
}
.terms-group ul > li {
list-style-type: none;}
.terms-group ul li:before {
content: '\2022'; /* 'î “' */
margin: 0 6px 0 -8px;}
.to-top {
float: right;}
.to-top a {
padding: 10px 20px;}
.to-top a:visited {
color: #202020;}
解决方案
推荐阅读
- ruby-on-rails - 接收 DRb::DRbRemoteError: FATAL: "base/
" 在构建 Devise 固定装置时不是有效的数据目录 - flutter - 如何使用 url_launcher 打开已安装的应用程序,否则在浏览器中打开?
- python - Python - 通过 csv 文件搜索多个关键字并从 BING.com 结果中获取第一个 URL 并将其保存为 CSV
- javascript - 如何使用数据库中的数据更改页面的某些内容
- rust - 在向量之间使用时,如何解释大于和小于运算符(`<`、`>`)?
- reactjs - “多余的 alt 属性。屏幕阅读器已经将 `img` 标签作为图像宣布。” 代码错误
- python - 使用foreign_key时sqlalchemy抛出错误
- javascript - AppendChild 和 insertAdjacentHtml 的区别?
- networking - 如何解决此错误:输入必须是向量,而不是 NULL。?
- ubuntu - 当我使用anaconda的环境时,我无法在Ubuntu系统中打开spyder。这是怎么发生的?我应该怎么办?