php标题内容折叠显示,WordPress实现内容折叠笔记

在WordPress文章中,有的内容不希望在第一层次显示出来,而让有兴趣的读者通过点击来显示。同时,超链接的方式响应太慢,且层次性体现得不好。我所想要的就是如下效果:

[dee title=”内容A”]

A的细节

[/dee]

[dee title=”内容B” class=”cgrey”]

B已经过时了

[/dee]

[dee title=”内容C”]

C的细节

[/dee]

参考网上的文章之后,找到一种实现方法。首先,安装WP jQuery CDN插件并启用。然后,在当前使用的WordPress主题目录下新建my_jQuery.js并加入以下内容,处理展开与折叠:

jQuery(document).ready(function($){

$('.collapseButton').click(function(){

$(this).parent().parent().find('.xContent').removeClass("xContent");

$('.xContent').slideUp('slow');

$(this).parent().parent().find('div:last').addClass("xContent");

$(this).parent().parent().find('.xContent').slideToggle('slow');

});

});

jQuery(document).ready(function($){

$('.collapseButton').click(function(){

$(this).parent().parent().find('.xContent').removeClass("xContent");

$('.xContent').slideUp('slow');

$(this).parent().parent().find('div:last').addClass("xContent");

$(this).parent().parent().find('.xContent').slideToggle('slow');

});

});

并在header.php中加入以下内容,加载以上javascript:

接着,在functions.php中加入:

function xcollapse($atts, $content=null){

extract(shortcode_atts(array("title"=>""),$atts));

return '

'.$title.' detail
'.$content.'
';

}

add_shortcode('dee','xcollapse');

function xcollapse($atts, $content=null){

extract(shortcode_atts(array("title"=>""),$atts));

return '

'.$title.' detail
'.$content.'
';

}

add_shortcode('dee','xcollapse');

现在,就可以在文章中通过如下代码来获取内容折叠展开的效果:

[dee title="内容A"]

A的细节

[/dee]

[dee title="内容A"]

A的细节

[/dee]

在主题样式表style.css中可以定义xControl、xButton、xTitle类的样式,来达到自己想要的显示效果。比如我的定义:

.xControl .xButton {

font-size: 0.8em;

font-style: italic;

color: #8470FF;

}

.xControl .xButton {

font-size: 0.8em;

font-style: italic;

color: #8470FF;

}

我并没有定义xTitle类的样式,因为无论怎么定义,以上方式都只能显示特定的一种title的样式。所谓xTitle,装饰的是上面例子中“内容A”字样。想要不同的title的样式,可以重写在functions.php中加入的函数:

function xcollapse($atts, $content=null){

extract(shortcode_atts(array("title"=>"","class"=>""),$atts));

return '

'.$title.' detail
'.$content.'
';

}

add_shortcode('dee','xcollapse');

function xcollapse($atts, $content=null){

extract(shortcode_atts(array("title"=>"","class"=>""),$atts));

return '

'.$title.' detail
'.$content.'
';

}

add_shortcode('dee','xcollapse');

现在,在文章中可以使用如下代码传入可选的第2个参数,这个参数传入一个类名,来装饰title。

[dee title="内容B" class="cgrey"]

B已经过时了

[/dee]

[dee title="内容B" class="cgrey"]

B已经过时了

[/dee]

当然,在style.css中加入对应的类,就可以随意控制title的样式:

.cgrey {

color: #D3D3D3;

}

.cgrey {

color: #D3D3D3;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值