Query_posts的魅力在于,它可以根据你的要求,通过各种各样的方式灵活地检索并过滤日志或页面。你可以用query_posts进行简单的文章抓取,可以只抓取一篇,也可以抓取上百篇。...Query_posts中说到: query_posts函数仅用于修改主页循环(Loop),而不是一种在页面上生成次级循环的手段。...在主循环外的循环上使用query_posts会导致主循环运行偏差,并可能在页面上显示出你不希望看到的内 容。 最恰当的方法是使用query查询类。 的日志、页面或附件。 对附件的调用可能是最有趣但同时被使用频率也是最低的一个。...抓取所有文章 你可以用几种不同的方法在网站地图和存档页等需要显示所有已发布文章的地方调用所有文章。 要调用所有已发布的文章,可以使用下面的这段代码: <?
获取帖子(Fetching Posts) WordPress提供从数据库中获取任何类型的帖子(post)的方法。...这有三种基本的方法: 使用query_posts() 方法 这是非常直接的方法,但问题是它覆盖了主查询,这可能会导致一些不便。...使用 get_posts() 方法 这个和 query_posts()很像,但它不会修改主查询。...这可能会导致不一致,特别是如果我们在代码中使用查询相关的过滤器,因为你在页面中不期望的帖子可能会被该函数返回。 使用WP_Query类 在我看来,这是从数据库中检索帖子的最佳方式。...为了实现这一点,我们使用posts_per_page参数。 WordPress允许我们将-1表示为该参数的合理值,在这种情况下,系统将尝试获取满足定义条件的所有帖子。
– 显示订单跟踪表单 在大多数情况下,这些短代码将通过我们的入门向导自动添加到页面中,无需手动使用。...menu_order– 菜单顺序,如果已设置(首先显示较小的数字)。 popularity– 购买次数。 rand– 在页面加载时随机订购产品(可能不适用于使用缓存的网站,因为它可以保存特定订单)。...order– 使用中设置的方法说明产品订单是升序 () 还是降序 ()。默认值为 。...[product_categories number="0" parent="0"] ---- 产品详情页 按 ID 或 SKU 显示完整的单个产品页面。...WooCommerce的页面上显示WooCommerce通知 [shop_messages]允许您在非WooCommerce页面上显示WooCommerce通知(例如,“产品已添加到购物车”)。
我们在使用 WP_Query 或者 query_posts 进行日志查询的时候,WordPress 都会产生很多 SQL_CALC_FOUND_ROWS 的 SQL 查询。...一般来说这类 SQL 查询,数据库是不会进行缓存,我前面也说了 别使用 MySQL 的 SQL_CALC_FOUND_ROWS 来获取总行数,因为慢。...WP_Query 和 query_posts 其实提供了 no_found_rows 参数可以阻止进行这类的 SQL 查询,比如: query_posts('no_found_rows=true&cat
在WooCommerce里,WooCommerce本身并没有一个现成的短代码能直接“列出最近30天内销量最高的前N个商品”。要实现这个功能,最干净、可复用的做法是自己写一个自定义短代码。...以下是一段可直接放到主题(或子主题)的functions.php、或做成一个小插件的代码,它会注册一个短代码:/** * 短代码 [top_sellers_30days] 列出过去 30 天销量最高的商品...'; } // 使用 WooCommerce 自带的 product loop 模板 ob_start(); woocommerce_product_loop_start...'';}使用方法把上面代码放进主题的functions.php或做成一个小插件(推荐用CodeSnippets插件)。...在页面/文章/小工具里直接写:[top_sellers_30days per_page="12" columns="4"]即可得到“最近30天内销量最高的12个商品”,且样式与商店列表页完全一致,支持主题响应式布局
wordpress作为最受欢迎的程序,我们对其功能要求也是更为多样。我们都知道wordpress文章发布后都是按照发布时间进行排位,最新发布的在最前面。...但是有的网友使用wp作为论坛,就需要新的排序方式。比如按最新评论排序。...原理:给每篇文章添加一个自定义字段_commentTime(这个字段的值为最新一条评论的时间)然后使用query_posts函数实现所有文章按照自定义字段_commentTime的值进行排序 具体操作:...functions.php文件中添加相应action代码这一步添加的代码可以实现发布新文章(或新更改)、有新评论的时候,自动添加/更新自定义字段_commentTime的值,不需要你手动添加更改。...query_posts更改文章排序在index.php中查找代码 if (have_posts()) 或 while (have_posts()),在上一行添加query_posts函数即可: if(!
简介 The7 是迄今为止市场上可定制性最高的WordPress、Elementor 和 WooCommerce 主题。它为您提供其他主题无法比拟的创作自由。...Elementor 是一个很棒的页面构建器。然而,在构建标题或自定义 WooCommerce 页面时,它却表现不佳。...简单的自定义帖子类型生成器 与许多其他主题一样,The7 始终为投资组合、团队、客户等提供内置帖子类型。但是,如果您需要更改现有帖子类型或进行复制,该怎么办?...在新版本中,我们更进一步,创建了一个非常简单的帖子类型生成器。现在,您可以编辑现有的或创建您自己的帖子类型,并使用我们的通用砌体、列表、网格和轮播小部件显示它们。...更新内容 v.11.11.3(2024 年 3 月 20 日) 改进: 改进了“订单”页面的响应式布局,以提高在各种设备上的可用性。 错误修复: 1. 调整了文本小部件中标题的颜色。
在WooCommerce商城开发中,短代码(Shortcode)是快速插入动态内容和功能的核心工具。...以下是一些高频使用的短代码及实际开发场景示例,涵盖商品展示、购物车和结账流程、用户中心等模块:1.商品展示类短代码场景1:首页展示“新品上架”// 在首页模板或古腾堡区块中添加[recent_products...1:独立购物车页面]// 在自定义页面(如 `/cart`)中插入[woocommerce_cart]注意:需确保WooCommerce设置中已分配该页面为购物车页。...场景2:迷你购物车(侧边栏/弹窗)// 在主题的小工具区域或弹窗模板中[woocommerce_mini_cart]场景3:结账页面// 在 `/checkout` 页面中插入[woocommerce_checkout...3.用户中心与订单场景1:用户订单历史// 在“我的账户”页面或会员中心[woocommerce_my_account]扩展:通过woocommerce_account_menu_items钩子添加自定义标签
最近,在我们开发我们网站的时候,我们找到了一个要执行8秒的查询。 我们使用WooCommerce和定制版的WooCommerce软件插件来运行我们的插件商店。...此查询的目的是获取那些我们知道客户号的客户的所有订阅。...WooCommerce是一个稍微复杂的数据模型,即使订单以自定义的类型存储,用户的ID(商店为每一个用户创建的WordPress)也没有存储在post_author,而是作为后期数据的一部分。...这是为了通过保持数据的完整性来保证我们只使用正确的订单记录,但是事实上这在查询中是多余的。...类似地,如果一些连接在MySQL中减慢了查询速度,那么将查询分解为两个或更多语句并在PHP中单独执行它们可能会更快,然后可以在代码中收集和过滤结果。
最近,在我们开发我们网站的时候,我们找到了一个要执行8秒的查询。 我们使用WooCommerce和定制版的WooCommerce软件插件来运行我们的插件商店。...此查询的目的是获取那些我们知道客户号的客户的所有订阅。...WooCommerce是一个稍微复杂的数据模型,即使订单以自定义的类型存储,用户的ID(商店为每一个用户创建的WordPress)也没有存储在post_author,而是作为后期数据的一部分。...这是为了通过保持数据的完整性来保证我们只使用正确的订单记录,但是事实上这在查询中是多余的。...你的PHP 代码中的静态缓存很简单并且可以很高效的解决这个问题。基本上,首次请求时从数据库中获取查询结果,并将其存储在类的静态属性中,然后后续的查询语句调用将从静态属性中返回结果: ?
WooCommerce 的预览电子邮件是一个简单的插件,旨在让网站所有者能够预览通过 WooCommerce 发送给客户的电子邮件。...作为插件功能的一部分,有一项功能可以搜索订单并根据特定订单生成电子邮件预览,以便管理员或商店经理可以准确查看特定用户看到的发送电子邮件的内容。...不幸的是,用于进行搜索的 search_orders 参数被反映到页面上,并且没有输入清理或输出时转义,这使得用户可以提供任意脚本,当使用有效负载访问页面时,这些脚本将在浏览器中执行在 search_orders...这意味着,如果攻击者能够成功说服站点管理员单击链接,他们就可以让恶意 JavaScript 在该管理员的浏览器中执行。...可以精心设计此脚本以注入新的管理用户,甚至修改插件或主题文件以包含后门,从而使攻击者能够完全接管该站点。
最近,在我们开发我们网站的时候,我们找到了一个要执行8秒的查询。 我们使用WooCommerce和定制版的WooCommerce软件插件来运行我们的插件商店。...WooCommerce是一个稍微复杂的数据模型,即使订单以自定义的类型存储,用户的ID(商店为每一个用户创建的WordPress)也没有存储在post_author,而是作为后期数据的一部分。...这是为了通过保持数据的完整性来保证我们只使用正确的订单记录,但是事实上这在查询中是多余的。...基本上,首次请求时从数据库中获取查询结果,并将其存储在类的静态属性中,然后后续的查询语句调用将从静态属性中返回结果: 缓存有一个生命周期,具体地说是实例化对象有一个生命周期。...优化查询看起来可能像一个可怕的任务,但只要你尝试一下,并取得一些初步的胜利,你就会开始找到错误,并希望做出进一步改善。 如果你有任何优化查询的建议或你喜欢使用的工具? 可以在评论中留言,让我们知道。
我们使用WooCommerce中的事件延迟表单提交,并将带有卡数据的AJAX请求直接发送到我们的支付处理器,checkout_place_order 如果客户详细信息正常,处理器将返回一个令牌,我们将其添加到下面的表格中..., 现在我们可以提交表格(当然在JS中), 我们使用PHP中的令牌通过支付处理器的API捕获付款。...' ) ); // 在大多数支付处理程序中,必须使用公共密钥来获得一个token wp_localize_script( 'woocommerce_kekc_cn', 'kekc_cn_params'..., 'error' ); return false; } return true; } 变更订单状态 使用API获取付款并设置订单状态 public function process_payment...( $order_id ) { global $woocommerce; // 根据订单id获取订单明细 $order = wc_get_order( $order_id );
前言 前一段时间,分享了如何使用wordpress快速搭建一个电商独立站。没有对接支付系统,其实像主流的如支付宝,或者微信有成熟的插件可用。但一些小的三方支付通道,只有接口文档。...参考:使用WooCommerce支付网关 API 创建自定义支付网关的方法 支付流程 主要模块 请求上游接口 process_payment($order_id) -> receipt_page($...,请求上游接口,获取支付链接 public function generate_form($order_id) { global $woocommerce.... ''; } 异步回调接口 接收上游渠道的通知,更新订单状态。...比如支付成功,跳转到结果页。支付失败,跳转到支付重新发起页。
在WooCommerce开发中,短代码是非常实用的工具,可以快速在页面、文章或小工具中嵌入电商功能。...以下是10个常用的WooCommerce短代码及其用途:产品展示短代码[products]功能:展示产品列表,可通过参数筛选(如分类、数量、排序等)示例:[products limit=”4″ category...]功能:显示结账表单,包括收货地址、付款方式等我的账户短代码[woocommerce_my_account]功能:显示用户账户页面,包括订单历史、地址管理等产品搜索短代码[woocommerce_product_search...]功能:在产品页面显示相关产品,通常用于交叉销售最近查看的产品[recently_viewed_products]功能:展示用户最近浏览过的产品这些短代码可以直接在WordPress的页面编辑器、文章编辑器或文本小工具中使用...使用时可以参考WooCommerce官方文档获取更多参数细节。
您可以通过高级广告(由WooCommerce处理)接受付款,广告商可以拥有自己的帐户来查看前端的统计信息。使用不同的计费模型,例如日费率、CPC、CPM或自定义条件。...帖子内容的顶部/底部在任何段落或标题之后(包括随机化)在特定的HTML元素处侧边栏/小部件使用简码或PHP函数手动放置页脚还有bbPress、BuddyBoss和BuddyPress集成,以便您可以轻松地在社区的特定位置插入广告...延迟显示/隐藏广告——例如,在用户在页面上停留10秒后显示广告。广告上限–设置每个用户会话显示的最大广告数量。例如,使用户在访问期间不会看到超过20个广告。...5个最佳WordPress广告插件 它带有一个易于使用的设置页面,您可以在其中管理您的广告代码并选择您想要显示它们的方式和位置。该插件可以在文章之前或之后、内部帖子内容、摘录之后等自动显示广告。 ...在一个页面上最多显示10个广告。Google允许发布商在一个页面上最多放置3个Adsense for Content。如果您正在使用其他广告,则最多可以显示10个广告。
SitePoint包括流行的模板,包括全角,边栏,标签,类别,作者,搜索,帖子存档和404。...他们还包括“页面构建器”的“空白”,“盒装”和“全角”模板,如果您选择使用诸如Visual Composer或Divi Builder的页面构建器,这是理想的选择。...SitePoint还提供了多达四个页脚小部件,这些小部件可根据所包含的数量在整个页面上直观地均匀分布。 如果您想要更多呢? (What If You Want More?)...对于自定义功能 ,您将进入插件领域(也就是说,SitePoint Base Theme支持许多流行的插件,例如支持强大电子商务功能的WooCommerce)。 2.使用页面构建器 (2....如果您有机会使用SitePoint基本主题进行审查或构建,请在下面与我们分享您的想法和经验。 否则,您可以在社区论坛上发布与支持相关的查询和反馈。
我其实一直挺困扰《每周歌词》的展示问题。原本这个栏目是我高中时期为了做站点SEO,保证博客能按时更新设定的。所以这个系列一开始都更新的很潦草,甚至大部分是在返校路上写出来的,完全没有质量可言。...但是今天感觉找到了个不错的办法:在首页隐藏部分文章。目前的逻辑是:隐藏所有“每周歌词”分类的文章,但是显示最新一篇和标“推荐”的文章。为了实现这个操作,我做了多种不同的尝试。...缺点很明显: 没办法跨页判断第一篇歌词,如果要跨页判断需要引入额外的数据库查询 每一页的文章数可能不同 侵入式修改,需要更改主题的index.php逻辑 后两点是无论如何都无法接受的,因此只能考虑其他方法...一开始我使用的是posts_where,但是后来发现如果要判断推荐日志就必须考虑postmeta表,所以还需要修改join、groupby子句。...不过虽然这样代价可接受、功能也可实现,但是直接修改SQL还是不甚完美,而且这样也假设了首页获取文章是第一个进行的查询操作。
下面随ytkah一起来看看query_posts函数使用方法小结 首先是query_posts 的一般写法。通常是如先定义查询再加入文章loop后再重置查询。 <?...php //仅显示标签带有cooking的文章 query_posts(‘tag=cooking’); //仅显示标签带有bread或baking的文章 query_posts(‘tag=bread...的文章 query_posts(array(‘tag__and’ => array(37,47)); //仅显示标签带有编号37或47的文章 query_posts(array(‘tag__in’...=> array(37,47)); //仅显示标签不带有编号37或47的文章 query_posts(array(‘tag__not_in’ => array(37,47)); ?...> 仅在首页显示,并且是在分类编号为13的当月发表文章。 <?php if (is_home()) { query_posts($query_string .