2019.2.19 关于wordpress主题开发
看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
- 实例
<?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主题开发相关推荐
- wordpress 主题开发
https://www.cnblogs.com/welhzh/p/6937243.html wordpress 主题开发 https://yusi123.com/3205.html https://t ...
- 2020年wordpress主题开发视频教程、WP主题WP模板开发视频教程
这个<2020年wordpress主题开发视频教程>是由码不停蹄官网录制的wordpress建站系列教程之一.本套视频教程非常适合wordpress新手用来学习开发wordpress主题模 ...
- modern php_使用Modern.IE改善WordPress主题开发
modern php This article was sponsored by modern.IE Thank you for supporting the sponsors who make Si ...
- 高级WordPress主题开发完整指南
高级WordPress主题开发完整指南 从头开始创建高级 WordPress 主题.了解有关 WordPress 主题开发的所有信息.在 Themeforest 上获得批准 课程英文名:The Com ...
- wordpress主题开发核心知识
课程文件目录:wordpress主题开发核心知识 1.简介 1.1简介.mp4 2. 开发准备 2-1: WordPress开发准备(上)之知识准备.开发工具和运行环境准备.mp4 2-2: Word ...
- wordpress主题开发_了解WordPress主题开发标准的详细信息
wordpress主题开发 WordPress theme development is more than just creating an appealing design. It include ...
- 如何找到WordPress 主题开发人员
如果您的WordPress 网站已经上线一段时间,您可能需要考虑研究自定义WordPress 主题.对于大多数高级WordPress 主题,无论您更改了多少图像和颜色,您都无法删除所有主题样式和布局. ...
- WordPress主题开发自定义导航菜单方法
一个网站的导航菜单可能有顶部导航菜单.主导航菜单.底部导航菜单等.所以,在WordPress主题开发时,我们就要考虑到如何自定义这些导航菜单.下面我们看看WordPress主题开发自定义导航菜单方法. ...
- WordPress主题开发视频课程
**WordPress主题**开发视频课程 Wordpress高级教程:固定链接及自定义伪静态规则.wmv Wordpress高级教程:add_action动作及add_filter过滤器.wmv W ...
最新文章
- pyqt5如何循环遍历控件名_利用Python的PyQt5编写GUI界面教学,QT5还是比较难的
- Resource 资源 ---Day09 2014-06-13
- vue方法调用失败后多次调用_浅析Vue中 computed / watch / methods的区别
- Angular应用里具有back功能的按钮实现
- vue监听移动设备的返回事件
- java jdbc dao_Java自学-JDBC DAO
- java的循环条件_Java循环和条件
- 热门开源CI/CD解决方案 GoCD 中曝极严重漏洞,可被用于接管服务器并执行任意代码...
- test软件工程第三次作业
- 二维螺旋曲线方程式,弧长计算及作图实现
- ip代理 12-02-03
- js相对视口的高度_js获取可视区域高度
- 英语简单的6种构词法
- java数组不初始化长度_数组之初始化 Java
- 主流云计算厂商产品服务介绍
- 长安链ChainMaker基于公钥用户标识的身份模式介绍
- window7取消文件默认打开方式的方法
- TE、TM、TEM模式的区别
- 基于 Nacos 配置中心的动态日志配置方案
- 吾尝终日而思矣——2019.02.19