wordpress默认会根据网址调用数据,不能满足我们所有建站要求,而WP_Query可以用于查询任何你想要的内容,相当于自定义数据调用。 wordpress的主循环 显示所有文章或使用分页,默认值为 'false', 使用分页 'paged' => get_query_var('paged'), //(整数) - 页数,分页时显示第几页 //注意:使用 get_query_var...('page'); 如果查询在设置为首页的页面模版中工作,查询参数 'page' 拥有文章分页或内容中使用 post__in 数组中制定的 ID 顺序 (3.5以后的版本中可用). /** * 置顶文章参数 - 显示或忽略置顶文章 */ 'ignore_sticky_posts' =...= new WP_Query( 'p=10' ); 调用指定page页面或category分类页可以用类似的写法 $query = new WP_Query( 'cat=8' );//调用指定分类的文章
在一页显示所有文章或使用分页,默认值为 'false', 使用分页 'paged' => get_query_var('paged'), //(整数) - 页数,分页时显示第几页 //注意:使用 get_query_var...('page'); 如果查询在设置为首页的页面模版中工作,查询参数 'page' 拥有文章分页或内容中使用 post__in 数组中制定的 ID 顺序 (3.5以后的版本中可用). /** * 置顶文章参数 - 显示或忽略置顶文章 */ 'ignore_sticky_posts' =>...// 3.判断查询的结果,有内容则循环 if($query->have_posts()):while($query->have_posts()):$query->the_post(); ?...$query = new WP_Query( 'p=36' ); 调用指定page页面或category分类页可以用类似的写法 $query = new WP_Query( 'cat=9' );//
图1 可以使用一个简单的VBA程序来比较这2个列表并突出显示不匹配的字母或单词。演示如下图2所示。 图2 当开始创建这样的宏时,第一步是定义基本算法(简单的逻辑步骤)。...要比较两组数据,需要执行以下操作: 1.对于列1中的每个项目 2.获取列2中的对应项 3.如果它们不匹配 4.对于单词匹配 (1)对于第一个文本中的每个单词 (2)在第二个文本中获取相应的单词 (3)相比较...(4)如果不匹配,以红色突出显示 (5)重复其他词 5.对于字母匹配 (1)找到第一个不匹配的字母 (2)在第二个文本中突出显示自该点的所有字母 6.重复列1 中的下一项 7.完毕 一旦你写下了这个逻辑...Range("list2").Cells(i) If Not cell1.Value2 = cell2.Value2 Then '两个单元格都不匹配.找到第一个不匹配的单词
正是在query_posts的作用下,WordPress的Loop循环才能够调用并显示所有文章内容。...在主循环外的循环上使用query_posts会导致主循环运行偏差,并可能在页面上显示出你不希望看到的内 容。 最恰当的方法是使用query查询类。 <?...Meta值 Post meta函数的实用性也很强, 我们可以利用下面的代码来显示最受欢迎的文章: 显示某些文章(隐藏重复内容) 最后这个方法曾经在WebLogToolsCollection上出现过。 其原理是当用户在某一个页面上使用多个WordPress循环时,用代码阻止重复内容被链接。...例如,当你的网站首页显示了最新发表的日志后会继续显示分类,如果隐藏重复内容,分类下将隐藏已经显示的最新发表的日志, 从而让更多内容显示在主页上。
ignore_sticky_posts (boolean) – 忽略置顶的文章,默认为 false,不忽略,就是在文章列表前面显示置顶文章。...每页显示3篇文章: $query = new WP_Query( array( 'posts_per_page' => 3 ) ); 在一页上显示所有文章: $query = new WP_Query(...); 从第4篇文章开始显示: $query = new WP_Query( array( 'offset' => 3 ) ); 每页显示5篇文章,然后偏移最近的三篇: $query = new WP_Query...因为 'page' 查询变量同时也是用于文章或者页面的内容中含有 中用于页面导航。...WP_Query( array( 'post__not_in' => get_option( 'sticky_posts' ) ) );
「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...显示用户有相应权限的已发布和私密的文章 $args = array( 'post_status' => array( 'publish', 'private' ), 'perm'...= new WP_Query( $args ); 显示50篇文章,但是 post meta 信息不加入缓存中: $args = array( 'posts_per_page'...=> 50, 'update_post_meta_cache' => false ); $query = new WP_Query( $args ); 显示50篇文章,但是 post term...,而无需其他的信息,也不需要 post meta 和 post term 的数据,通过这几个参数的设置,可以不执行额外的 SQL 查询的时间。
>解释:get_posts函数用于获取文章,参数与WP_Query类似。setup_postdata用于设置全局变量$post,以便使用模板标签(如the_title、the_permalink等)。...php echo get_the_title($post_id); ?> 最新评论内容:post_ID获取评论所属的文章ID,然后使用get_post函数获取文章信息。wp_trim_words函数用于截取评论内容,避免显示过长。...可以考虑使用缓存插件(如WP Super Cache)或数据库缓存技术来优化性能。样式调整:根据主题的样式表(CSS)调整输出内容的样式,使其与网站整体风格保持一致。...通过以上方法,你可以灵活地调用WordPress中评论数最多或最新评论的文章,为网站用户提供更有价值的内容展示。
默认为:date (post_date)。可以传递一个或多个选项: none – 无顺序 ID – 按文章 ID 排序,注意 ID 是大写的。 author – 按文章作者排序。...,其次如果所有搜索词都在标题内,第三是否有任何搜索词出现在标题中,第四是否完整的句子出现在内容中。...( $args ); 随机显示一遍文章: $args = array( 'orderby' => 'rand', 'posts_per_page' => '1', );...= new WP_Query( $args ); 获取按照价格自定义字段排序的商品: $args = array( 'post_type' => 'product', 'orderby...( $args ); 获取 my_custom_post_type 的文章,按照数字自定义字段 age 排序,并通过 meta_query 过滤数据只显示 age 为:3-4 的数据 $args = array
在WordPress中,要调用指定分类ID下的:最新文章最多阅读(需要配合阅读量插件或自定义字段)最新评论的文章可以分别用WP_Query、get_posts、get_comments等实现。...以下是无插件、可复用的代码片段,适合写在主题的functions.php或自定义插件中,并通过短代码或模板调用。...' => 'publish', ); $query = new WP_Query($args); if ($query->have_posts()): echo '...>2.获取指定分类下最多阅读的文章WordPress默认不记录阅读量,需配合插件(如PostViewsCounter)或自定义字段(如post_views_count)假设你使用的是自定义字段post_views_count...>调用内容函数名示例调用(分类 ID = 3)最新文章get_latest_posts_by_cat()<?php get_latest_posts_by_cat(3, 5); ?
但是现在我已经有充足的时间更新博客虽然我也不更新,所以也越来越重视《每周歌词》的质量。如今的《每周歌词》已经逐渐变成我个人对某首歌曲和它歌词的感悟了。...目前的逻辑是:隐藏所有“每周歌词”分类的文章,但是显示最新一篇和标“推荐”的文章。为了实现这个操作,我做了多种不同的尝试。...如果一定要用这个方法实现的话,就需要先进行一次查询找出所有非推荐、不是最后一篇的文章id,然后加入post__not_in参数来去除这些文章。...、推荐的显示 $clause['groupby'] = "{$wpdb->posts}.ID"; $clause['join'] .= " INNER JOIN {$wpdb->postmeta...} ON ( {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id )"; $clause['where'] .= " AND (" .
使用插件安装排序插件:在WordPress插件库中搜索“文章排序”或“post order”等关键词,安装并激活一个适合的插件,如“Post Types Order”。...找到模板文件:通常在主题的index.php或archive.php文件中找到文章循环代码。修改查询:在文章循环之前,添加或修改WP_Query对象的参数。...' => 'ASC', // 或 'DESC');$query = new WP_Query($args);if ($query->have_posts()) { while ($query->have_posts...()) { $query->the_post(); // 输出文章内容 }}wp_reset_postdata();方法四:使用页面模板如果你只需要在某个特定页面上改变文章的显示顺序...query->have_posts()) { $query->the_post(); // 输出文章内容 }}wp_reset_postdata();get_footer
几种写法,有用到query_post的,有用到WP_Query,也有用到is_sticky(),下面随ytkah一起来看看吧 第一种调用置顶文章的方法,用到query_post,代码如下 显示其他的文章。...'posts_per_page' => 10,控制文章的数量 不添加的情况下,如果置顶文章条目不足'posts_per_page'规定的值,会用最新文章替补完整。 ...> 第二种写法用到WP_Query,和第一种方法有点类似,代码如下 WP_Query( $args ); while ( $sticky_posts->have_posts() ) : $sticky_posts->the_post();?
(); //获取到特定的文章 // 要输出的内容,如标题、日期等 endwhile;endif; 但是很遗憾,不知道是我的姿势不对,就是不起作用??...global $post; $post_title = get_the_title(); // mb_stripos 不区分大小 判断字符串中是否存在另一个字符串...global $post; $post_title = get_the_title(); // mb_stripos 不区分大小 判断字符串中是否存在另一个字符串 ...' => 'post', 'post_status' => 'publish', ]; $result = new WP_Query($...问题3 – 异步渲染 其实很简单,前两部已经完成大部分的工作。我们只需要添加一个监听输入框值变化的事件,使用 JQuery 的 ajax 请求接口就OK了。
比如使用 wp_insert_post 函数将文章添加到数据库,这些函数会自动去清理缓存,这样下次使用 WP_Query 获取文章时候,就能获取是包含了新增的或者更新之后的数据。...如何禁用缓存 值得注意的是,在默认情况下,WP_Query 的所有数据库查询都将被缓存,如果想不缓存,只需将 cache_results 参数设置为 false 即可: $query = new WP_Query...缓存 key 规则 缓存的键是使用 WP_Query 的查询参数生成的,但是会忽略以下参数: suppress_filters cache_results fields update_post_meta_cache...WP_Query 初始化所有作者数据 在 6.1 之前,主循环会同时加载作者信息,所以具有多个作者的站点需要执行多次数据库查询来分别获取作者的信息,现在 WordPress 6.1 引入了一个新函数 update_post_author_caches...此函数接受一个 post 对象数组参数,并将初始化用户缓存,WP_Query 会自定调用 update_post_author_caches 以提高站点性能。
前面罗列过 WP_Query 的所有参数,今天研究 WP_Query 的缓存,把所有相关的缓存参数都翻了一遍,做一下简单笔记。...update_post_term_cache 参数 是否缓存 post term 的内容,默认也是 true。...update_post_meta_cache 参数 是否缓存 post meta 的内容,默认是 true。...( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] ); 它的源代码很好的解释了它的工作原理是: function _prime_post_caches...(如果开启了 Memcached,这里就可以自动实现返回为空,就会大大减少 SQL 请求),然后使用一条 IN 查询获取这些 post_ids 的内容,最后再使用 update_post_caches
基本上,我从数据库引擎中脱掉了一些工作,而是将其转移到PHP引擎,功能和在数据中处理的相同但在内存中,因此更快。 如何做的? 首选,我在查询中删除了post__not_in参数。...由于查询可能会给我们带来一些我们不希望的帖子,所以我增加了posts_per_page参数。...例如,考虑到我们有一个轮播显示在后端指定的突发新闻的站点。...最后,我们将一个重型数据库查询(使用WP_Query元键)更改为简单直接的查询(调用get_post()),这是一个更好和更有效的方法。...Transients 工作类似,但允许我们指定一个到期时间。
php print($wp_query); ?...默认查询的总结 默认查询: $wp_query -> posts -> post 被查询对象:(wp_query查询出来的) get_queried_object() get_queried_object_id...the_xxx 可以直接输出, get_the_xxx 不能直接输出 WordPress的函数中,the开头的基本都是直接输出内容,get开头是获取内容。...previous_posts_link() get_previous_posts_link() 16.获取文章所属的分类目录信息(the_category) wp模板标签the_category用于在文章页或归档页的文章列表中输出当前文章所属分类...② $sep 字符串值,默认值:, 在每个标签链接 之间 显示的文本。 ③ $after 字符串值,默认为空 在标签链接 后 显示的文本。
前面我们讲了wordpress添加post_type自定义文章类型,我们现在来讲一下如何把自定义文章调用出来,我们以product为例,虽然我们自定义好了 Post Type 同时也编写了一些内容,...但是在首页、列表里面并没有显示出来。...自定义的 Post Type 的内容不会自动混入主循环里面。那如何让自定义 Post Type 的内容显示出来?...pre_get_posts', 'add_custom_pt' ); 将上面的代码加入到主题function.php文件中 第二步,上面操作依赖模板,如果需要高度自定义或者在页面的某个模块中调用列表,就需要用到 WP_Query...php $args = array( 'post_type' => 'product'); $loop = new WP_Query
WordPress本质上是一个内容管理系统(CMS),是显示、创建、发布和维护内容的软件。 本文介绍的插件 Display Posts 主要就是用来扩展WordPress关于显示内容这部分的功能。...是定义于 wp-includes/query.php 中的一个用于处理复杂的请求wordpress博客中文章或页面的类。...Display Posts这个插件其实是对WP_Query 类做的一层高级封装,让用户可以不必手写复杂的WP_Query查询就可以得到想要的过滤结果。...尤其是当你的WordPress网站有了很多内容,想在网站的某些地方按某些条件来自由组织已有内容的时候,会显得非常有用,可以通过各种条件来进行花式搜索,自由控制显示的形式,使用也很方便。...用来控制列表中显示哪些文章,条件可以基于目录、作者、日期或其他 Display parameters determine how the posts are listed.
首先,这是一个演示该漏洞的快速视频: 漏洞 该漏洞发生在 WordPress Query ( WP_Query ) 类中。WP_Query对象用于对 WordPress 数据库执行自定义查询。...插件和主题使用此对象来创建他们的自定义帖子显示。 当插件使用易受攻击的类时,就会出现该漏洞。一个这样的插件是Elementor Custom Skin 。...(){ global $wp_query; ......( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] ); } else { $this->posts = array...我们建议尽快应用补丁或采取其他补救措施。特别感谢 GiaoHangTietKiem JSC 的 ngocnb 和 khuyenn 向 ZDI 报告此事。