看WordPress的官网的主题开发资料总结

循环loop

  • Loop是WordPress用来显示帖子的PHP代码,使用The Loop,WordPress会处理每个帖子以显示在当前页面上
  • 循环的概念

循环是面向对象和全局变量的组合

循环的两个重要全局变量是:
$ wp_query,它是类WP_Query的一个对象,持有一个WP数据库查询结果,其中$ wp_query-> posts,一个单独的WP_Post数组。
$ post是 WP_Post类的当前对象
查看WP_Post类的时候,post对象就是储存在数据库里的post日志对象,对象的参数就是数据库的元素:
关于wp_post对象的详细参数:https://codex.wordpress.org/Class_Reference/WP_Post#Member_Variables_of_WP_Post
PS:
默认情况下,所有模板标签都依赖于$ post全局变量,并且$ post全局变量由_post()设置/修改,后者从$ wp_query全局变量获取其数据。$ post也由WP_Query :: the_post()设置/修改,如在辅助循环中使用的那样。

  • 使用循环(全部显示):

请务必在主题模板的顶部包含对标题模板的调用。如果您在自己的设计中使用The Loop(并且您自己的设计不是模板),请将WP_USE_THEMES设置为false:

 <?php define('WP_USE_THEMES',false); get_header(); ?>

在主页模板中输入:

<?php if(have_posts()) :while (have_posts()) :the_post();?>
//只显示日志的标题<?php the_title()?>
<?php endwhile;?>
<?php endif;?>

- 使用循环从某些类别中排除帖子(选择显示)

排除了类别3和8的帖子:直接使用内部查询函数,修改查询参数,对查询本身做出修改:

//直接声明查询类WP_Query的对象,并初始化对象,排除3、8类别
<?php $ query = new WP_Query('cat = -3,-8'); ?><?php if($ query-> have_posts()):while($ query-> have_posts()):$ query-> the_post(); ?><?php th_title()?><?php the_content(); ?><?php endwhile?><?php endif; ?>

PS:WordPress将排除类别3和类别8中的所有帖子,即使在查看类别存档时!

多重循环Multiple Loops

  1. 实例
<?php rewind_posts(); ?> <?php while(have_posts()):the_post(); ?> <! - ......  - >
<?php endwhile; ?>

或者

//获取special_cat类别中的最后10篇帖子。
<?php query_posts('category_name = special_cat&posts_per_page = 10'); ?> <?php while(have_posts()):the_post(); ?> <! - ......  - >
<?php endwhile; ?>

嵌套循环(不太理解)
eg:

$ my_query = new WP_Query('cat = 3');
if($ my_query-> have_posts()){ while($ my_query-> have_posts()){ $ my_query-> the_post(); 内容(); }
}
wp_reset_postdata();

帮助理解循环过程的一张图

关于模板

  • 一个简单的WordPress网页由三个部分组成:头部结构、内容结构、底部结构。这些结构都是由你当前使用的WordPress主题模板文件生成的。
  • 基本模板文件index.php是开始文件。这个文件有两个主要功能:
    包含或者调用其它模板文件;
    包含WordPress主循环以从数据库获取信息(日志、页面、分类等等信息)。
  • 网页中的内容是由各个模板文件在后台生成的。主题文件和样式表存储在一起就成为了一个WordPress主题(如header.php 、footer.php、searchform.php等模板文件)
    ps:像header.php 这样WordPress的标准模板文件,导入的时候直接使用WordPress的内部函数get_header(); 像sidebar.php自定义的模板文件需要使用PHP的include(‘src’)将外部代码包含进来(或者使用include_once()一次调用外部代码)
  • 特殊模板:single.php、page.php、archive.php模板文件
    URL的寻找规则:
    例如,当用户点击日志标题的时候,WordPress会认为用户希望在单独日志页面上打开文档。于是WordPress的模板分级模式会优先使用single.php模板文件生成页面(如果你的主题里有single.php的话),而不是使用index.php模板文件生成。同样,如果用户点击了特别分类的链接,WordPress将使用category.php模板文件来显示,如果这个模板文件不存在,WordPress将寻找archive.php模板文件,如果这个模板文件也不存在,WordPress将使用主模板index.php来显示页面。
    自己通过设置page.php页面,当访问某个页面的URL的时候,WordPress会优先加载page.php的页面而不是index的页面,如果使用搜索博客,放回的页面是会将结果放回加载到search.php页面中,还在研究看关于模板层次结构的跳转的问题
    关于模板层次结构:https://developer.wordpress.org/themes/basics/template-hierarchy/

2019.2.19 关于wordpress主题开发相关推荐

  1. wordpress 主题开发

    https://www.cnblogs.com/welhzh/p/6937243.html wordpress 主题开发 https://yusi123.com/3205.html https://t ...

  2. 2020年wordpress主题开发视频教程、WP主题WP模板开发视频教程

    这个<2020年wordpress主题开发视频教程>是由码不停蹄官网录制的wordpress建站系列教程之一.本套视频教程非常适合wordpress新手用来学习开发wordpress主题模 ...

  3. modern php_使用Modern.IE改善WordPress主题开发

    modern php This article was sponsored by modern.IE Thank you for supporting the sponsors who make Si ...

  4. 高级WordPress主题开发完整指南

    高级WordPress主题开发完整指南 从头开始创建高级 WordPress 主题.了解有关 WordPress 主题开发的所有信息.在 Themeforest 上获得批准 课程英文名:The Com ...

  5. wordpress主题开发核心知识

    课程文件目录:wordpress主题开发核心知识 1.简介 1.1简介.mp4 2. 开发准备 2-1: WordPress开发准备(上)之知识准备.开发工具和运行环境准备.mp4 2-2: Word ...

  6. wordpress主题开发_了解WordPress主题开发标准的详细信息

    wordpress主题开发 WordPress theme development is more than just creating an appealing design. It include ...

  7. 如何找到WordPress 主题开发人员

    如果您的WordPress 网站已经上线一段时间,您可能需要考虑研究自定义WordPress 主题.对于大多数高级WordPress 主题,无论您更改了多少图像和颜色,您都无法删除所有主题样式和布局. ...

  8. WordPress主题开发自定义导航菜单方法

    一个网站的导航菜单可能有顶部导航菜单.主导航菜单.底部导航菜单等.所以,在WordPress主题开发时,我们就要考虑到如何自定义这些导航菜单.下面我们看看WordPress主题开发自定义导航菜单方法. ...

  9. WordPress主题开发视频课程

    **WordPress主题**开发视频课程 Wordpress高级教程:固定链接及自定义伪静态规则.wmv Wordpress高级教程:add_action动作及add_filter过滤器.wmv W ...

最新文章

  1. pyqt5如何循环遍历控件名_利用Python的PyQt5编写GUI界面教学,QT5还是比较难的
  2. Resource 资源 ---Day09 2014-06-13
  3. vue方法调用失败后多次调用_浅析Vue中 computed / watch / methods的区别
  4. Angular应用里具有back功能的按钮实现
  5. vue监听移动设备的返回事件
  6. java jdbc dao_Java自学-JDBC DAO
  7. java的循环条件_Java循环和条件
  8. 热门开源CI/CD解决方案 GoCD 中曝极严重漏洞,可被用于接管服务器并执行任意代码...
  9. test软件工程第三次作业
  10. 二维螺旋曲线方程式,弧长计算及作图实现
  11. ip代理 12-02-03
  12. js相对视口的高度_js获取可视区域高度
  13. 英语简单的6种构词法
  14. java数组不初始化长度_数组之初始化 Java
  15. 主流云计算厂商产品服务介绍
  16. 长安链ChainMaker基于公钥用户标识的身份模式介绍
  17. window7取消文件默认打开方式的方法
  18. TE、TM、TEM模式的区别
  19. 基于 Nacos 配置中心的动态日志配置方案
  20. 吾尝终日而思矣——2019.02.19

热门文章

  1. 写尽凄凉,沧桑,却写不出那最后一抹忧伤
  2. 关于视频与音频的优化技巧
  3. 第三章 多维随机变量及其分布 3.3 条件分布
  4. 四舍五入采用float
  5. AIO - Cyberlink DVD
  6. Talk | 阿姆斯特丹大学博士生胡涛:计算机视觉中的标签效率学习
  7. eclipse java vm_eclipse配置java虚拟机的方法 转
  8. 华为鸿蒙4月17日,近5个交易日概念复盘讯息:华为鸿蒙概念股市走势(4月17日)...
  9. 学习成绩进行评等级(0~100)
  10. HTML5入门之无序列表