[[IT知识]] WordPress CMS 栏目块设计指南

[复制链接]
查看: 25|回复: 0
发表于 昨天 15:43 | 显示全部楼层 | 阅读模式
易博V9下载

WordPress CMS 栏目块设计指南

有网友提问:首页如果每个栏目都单独成一个列表(类似常规的cms)怎么写啊?类似下面的效果:


WordPress CMS 栏目块设计指南

其实这个功能还是比较容易实现的,只需用WodPress内置的 WP_Query 类调用指定分类的文章即可,下面用一个具体实例来讲解如何制作CMS栏目块。

1、制作HTML页面

本文就不讲解html页面的制作了,具体的html、css如何制作一个栏目块,请自行学习制作。这里假设你的栏目块是类似以下的html代码:

  1. <div>;
  2. <!-- 分类名称及链接 -->;
  3. <h3>;
  4. <strong>;<a href="历史分类链接/">;历史</a>;</strong>;
  5. <em>;<a href="历史分类链接/">;更多</a>;</em>;
  6. </h3>;
  7. <!-- 文章列表 -->;
  8. <ul>;
  9. <li>;<a href="文章1链接">;文章1标题</a>;</li>;
  10. <li>;<a href="文章2链接">;文章2标题</a>;</li>;
  11. <li>;<a href="文章3链接">;文章3标题</a>;</li>;
  12. <li>;<a href="文章4链接">;文章4标题</a>;</li>;
  13. </ul>;
  14. </div>;
复制代码

2、获取分类链接

分类链接我们可以用静态的网址,也可以用动态的获取的方式。静态方式就是直接将上面的http://历史分类链接/改成你的分类链接。动态获取分类链接有很多方式,可以通过分类id来获取,可以通过分类别名来获取,也可以通过分类名称来获取。这里介绍通过分类名称来获取分类链接,代码:

  1. <?php
  2. $catid = get_cat_ID('历史'); // 历史是分类名称
  3. echo get_category_link($catid); // 输出分类链接
  4. ?>;
复制代码

用上面的php代码替换html中的http://历史分类链接/,代码看起来是这样:

  1. <strong>;<a href="<?php echo get_category_link(get_cat_ID('历史')); ?>">;历史</a>;</strong>;
  2. <em>;<a href="<?php echo get_category_link(get_cat_ID('历史')); ?>">;更多</a>;</em>;
复制代码

3、获取分类文章列表

我们需要动态获取该分类下的指定数量的文章,然后动态输出到html的ul列表中,这里需要用到 WP_Query 类,WP_Query有很多参数,这里只介绍2个简单的,其他参数请参阅文档或上网搜索。

我们将html做如下修改,加入WP_Query调用代码:

  1. <ul>;
  2. <?php
  3. // 传递调用参数
  4. $the_query = new WP_Query(
  5. array(
  6. 'category_name' =>; '历史', // 分类名称
  7. 'posts_per_page' =>; 10 // 最多显示的文章数
  8. ) );
  9. if ( $the_query->;have_posts() ) {
  10. while ( $the_query->;have_posts() ) {
  11. $the_query->;the_post();
  12. // get_permalink()是获取文章链接
  13. // get_the_title()是获取文章标题
  14. echo '<li>;<a href="' . get_permalink() .'">;' . get_the_title() . '</a>;</li>;';
  15. }
  16. }
  17. else {
  18. echo '<li>;<a href="#">;该分类没有文章</a>;</li>;';
  19. }
  20. // WP_Query结束都要重置一下
  21. // 以免影响其他代码
  22. wp_reset_postdata();
  23. ?>;
  24. </ul>;
复制代码

4、限制文章标题字数

可能文章标题很长,超出了栏目块的范围。我们可以限制一下文章标题的字数,超出的用...代替,将第3点中的get_the_title()替换成以下代码即可:

  1. mb_strimwidth(get_the_title(), 0, 28, '...')
复制代码

一个汉字是2个字符,上面的28代表最多显示14个汉字,超出的用...代替。长度自选。

完整代码

下面是通过以上修改后的完整代码,多个分类块就依此类推:

  1. <div>;
  2. <!-- 分类名称及链接 -->;
  3. <h3>;
  4. <strong>;<a href="<?php echo get_category_link(get_cat_ID('历史')); ?>">;历史</a>;</strong>;
  5. <em>;<a href="<?php echo get_category_link(get_cat_ID('历史')); ?>">;更多</a>;</em>;
  6. </h3>;
  7. <!-- 文章列表 -->;
  8. <ul>;
  9. <?php
  10. // 传递调用参数
  11. $the_query = new WP_Query(
  12. array(
  13. 'category_name' =>; '历史', // 分类名称
  14. 'posts_per_page' =>; 10 // 最多显示的文章数
  15. ) );
  16. if ( $the_query->;have_posts() ) {
  17. while ( $the_query->;have_posts() ) {
  18. $the_query->;the_post();
  19. // get_permalink()是获取文章链接
  20. // get_the_title()是获取文章标题
  21. echo '<li>;<a href="' . get_permalink() .'">;' . mb_strimwidth(get_the_title(), 0, 28, '...') . '</a>;</li>;';
  22. }
  23. }
  24. else {
  25. echo '<li>;<a href="#">;该分类没有文章</a>;</li>;';
  26. }
  27. // WP_Query结束都要重置一下
  28. // 以免影响其他代码
  29. wp_reset_postdata();
  30. ?>;
  31. </ul>;
  32. </div>;
复制代码
易博软件介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表