这是wp列表类别的输出:
Personal Area
Allergy Asthma Dust
Restaurant
Cafe
Bar
Chemical &
Smoke
Airport
Dump &
Mold
Pet &
Dander
Commercial Area
Commercial child 1
Commercial child 1-2
Commercial child 1-3
Commercial child 2
Commercial child 2-1
这是我在front-page.php上的代码
<
?php wp_list_categories('taxonomy=product_category&
hide_empty=0&
orderby=id&
title_li=');
?>
该类别有2个深度子级。我想自定义带有每个类别级别的背景图像的输出html, 并单击功能显示每个孩子
这是我要在wp列表类别中添加的html:
<
div class="row">
<
div class='col-md-6 pr-0'>
<
a href="http://www.srcmini.com/#">
<
div class="personal text-right">
<
p>
I want to improve air quality in my<
/p>
<
h4>
PERSONAL AREA<
/h4>
<
/div>
<
/a>
<
/div>
<
div class='col-md-6 pl-0'>
<
a href="http://www.srcmini.com/#">
<
div class="commercial text-left">
<
p>
I want to have better air quality in my<
/p>
<
h4>
COMMERCIAL AREA<
/h4>
<
/div>
<
/a>
<
/div>
<
/div>
这是当单击父类别时的子HTML:
<
div class="row">
<
div class='col-md-12 pr-0'>
<
a href="http://www.srcmini.com/#">
<
div class="personal text-right">
<
h4>
What do you want to get rid off ?<
/h4>
<
p>
Allergy Asthma Dust<
/p>
<
p>
Chemical &
Smoke<
/p>
<
p>
Dump &
Mold<
/p>
<
p>
Pet &
Dander<
/p>
<
/div>
<
/a>
<
/div>
【自定义输出wp列表类别】这是更新的PHP代码
<
?php
$product_categories = get_terms( array(
'taxonomy' =>
'product_category', 'hide_empty' =>
false, 'orderby' =>
'ID', ) );
$cnt = 0;
foreach($product_categories as $product_category) :
$cnt++;
if( count(get_term_children( $product_category->
term_id, 'product_category' )) == 0) $catlink = 'document.location.href=http://www.srcmini.com/''.get_term_link( $product_category->
term_id, 'product_category' ).'\'';
else $catlink = 'toggleChildCategories('.$product_category->
term_id.')';
// check last child category and change linkif($product_category->
parent == 0 &
&
$cnt % 2 != 0) { // top-level parent
echo '<
div class="col-md-6 pr-0 cat-parent-'.$product_category->
term_id.' cat-parent cat-parent-'.$product_category->
parent.' show">
<
a href="javascript:void(0);
" onClick="'.$catlink.'">
<
div class="personal text-right">
<
p>
'.$product_category->
description.'<
/p>
<
h4>
'.$product_category->
name.'<
/h4>
<
/div>
<
/a>
<
/div>
';
}
if($product_category->
parent == 0 &
&
$cnt % 2 == 0) { // top-level parent
echo '<
div class="col-md-6 pl-0 cat-parent-'.$product_category->
term_id.' cat-parent cat-parent-'.$product_category->
parent.' show">
<
a href="javascript:void(0);
" onClick="'.$catlink.'">
<
div class="commercial text-left">
<
p>
'.$product_category->
description.'<
/p>
<
h4>
'.$product_category->
name.'<
/h4>
<
/div>
<
/a>
<
/div>
';
}
else { // child
if($product_category->
term_id == 4) {
echo '<
div class="col-md-12 cat-parent-'.$product_category->
term_id.' cat-children cat-item-'.$product_category->
parent.' hide">
<
h2>
What do you want to get rid of ?<
/h2>
<
/div>
';
}
if($product_category->
term_id == 10) {
$parentname=get_term_by('id', $product_category->
parent, 'product_category');
echo '<
div class="col-md-12 cat-parent-'.$product_category->
term_id.' cat-children cat-item-'.$product_category->
parent.' hide">
<
h2>
Where do you want to get rid of<
/h2>
<
h3>
'.$parentname->
name.'<
/h3>
<
/div>
';
}
echo '<
div class="col-md-2 border2 cat-parent-'.$product_category->
term_id.' cat-children cat-item-'.$product_category->
parent.' hide">
<
a href="javascript:void(0);
" onClick="'.$catlink.'">
<
h5>
'.$product_category->
name.'<
/h5>
<
/a>
<
/div>
';
}
endforeach;
?>
#1你可以使用get_terms()实现自定义布局。
<
?php
$product_categories = get_terms( array(
'taxonomy' =>
'product_category', 'hide_empty' =>
false, 'orderby' =>
'ID', ) );
foreach($product_categories as $product_category) :
if($product_category->
parent >
0) $hideshow='cat-item-'.$product_category->
parent.' hide';
else $hideshow='cat-parent cat-parent-'.$product_category->
parent.' show';
// hide child categories and append parent category
echo '<
div class="col-md-6 pr-0 cat-parent-'.$product_category->
term_id.' '.$hideshow.'">
<
a href="javascript:void(0);
" onClick="toggleChildCategories('.$product_category->
term_id.');
">
<
div class="personal text-right">
<
p>
'.$product_category->
description.'<
/p>
<
h4>
'.$product_category->
name.'<
/h4>
<
/div>
<
/a>
<
/div>
';
endforeach;
?>
添加此JS, 这将在单击父类别时切换适当的子类别。
<
script>
function toggleChildCategories(catid)
{
jQuery('.cat-parent-'+catid).hide();
// hide particular parent
jQuery('.cat-parent').hide();
// hide all parents
jQuery('.cat-item-'+catid).slideToggle(100);
// toggle child
}
<
/script>
最初使用此CSS隐藏所有子类别。
<
style>
.hide{display:none;
}
<
/style>
希望这可以帮助。但是请注意, 这只是一个想法, 你需要进行必要的更改。
更新:父类别(仅顶层)和子类别的不同模板。
<
?php
$product_categories = get_terms( array(
'taxonomy' =>
'product_cat', 'hide_empty' =>
false, 'orderby' =>
'ID', ) );
foreach($product_categories as $product_category) :
if( count(get_term_children( $product_category->
term_id, 'product_category' )) == 0) $catlink = 'document.location.href=http://www.srcmini.com/''.get_term_link( $product_category->
term_id, 'product_category' ).'\'';
else $catlink = 'toggleChildCategories('.$product_category->
term_id.')';
// check last child category and change linkif($product_category->
parent == 0) { // top-level parent
echo '<
div class="col-md-6 pr-0 pl-0 cat-parent-'.$product_category->
term_id.' cat-parent cat-parent-'.$product_category->
parent.' show">
<
a href="javascript:void(0);
" onClick="'.$catlink.'">
<
div class="personal text-right">
<
p>
'.$product_category->
description.'<
/p>
<
h4>
'.$product_category->
name.'<
/h4>
<
/div>
<
/a>
<
/div>
';
}
else { // child
echo '<
div class="col-md-2 border2 cat-parent-'.$product_category->
term_id.' cat-item-'.$product_category->
parent.' hide">
<
a href="javascript:void(0);
" onClick="'.$catlink.'">
<
h5>
'.$product_category->
name.'<
/h5>
<
/a>
<
/div>
';
}
endforeach;
?>
推荐阅读
- 自定义帖子类型下的自定义页面
- WP custom-functions.php文件问题
- 自定义字段选择框WordPress
- [iOS研习记]——谈谈静态库与动态库
- 手把手整合SSM框架#yyds干货盘点#
- C----选择语句(要Ta还是我),循环语句(重复)
- Linux系统安全与应用
- 第七章-内部类#yyds干货盘点#
- 大厂算法面试之leetcode精讲6.深度优先&广度优先