首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Wordpress - wp_query中的动态自定义帖子类型

WordPress的wp_query函数允许开发者根据各种条件查询网站上的帖子,包括自定义帖子类型(Custom Post Types, CPTs)。动态自定义帖子类型是指在运行时根据某些条件创建或修改查询的自定义帖子类型。

基础概念

自定义帖子类型(CPTs):除了WordPress默认的文章(posts)和页面(pages)之外,开发者可以创建自己的帖子类型来存储不同类型的内容。例如,作品集、产品、活动等。

wp_query:这是一个强大的查询工具,它允许你根据特定的参数检索WordPress数据库中的帖子。你可以使用它来查询自定义帖子类型。

相关优势

  1. 灵活性:允许你为不同的内容创建不同的模板和结构。
  2. 组织性:更好地组织和分类网站内容。
  3. 扩展性:通过插件或自定义代码轻松添加新的内容类型。

类型

自定义帖子类型可以是简单的,如“作品集”,也可以是复杂的,如带有自定义字段和税务信息的“产品”。

应用场景

  • 电商网站:产品页面。
  • 作品展示网站:艺术家或摄影师的作品集。
  • 活动管理网站:活动和日程安排。

示例代码

以下是一个简单的例子,展示了如何在wp_query中使用动态自定义帖子类型:

代码语言:txt
复制
// 动态设置自定义帖子类型
$post_type = 'portfolio'; // 可以根据需要动态更改

$args = array(
    'post_type' => $post_type,
    'posts_per_page' => 10,
);

$query = new WP_Query($args);

if ($query->have_posts()) :
    while ($query->have_posts()) : $query->the_post();
        // 输出帖子内容
        the_title();
        the_content();
    endwhile;
    wp_reset_postdata();
else :
    echo '没有找到帖子';
endif;

遇到的问题及解决方法

问题:查询结果不正确或不显示。

原因

  • 自定义帖子类型未正确注册。
  • 查询参数设置有误。
  • 数据库中没有相应类型的帖子。

解决方法

  1. 确保自定义帖子类型已使用register_post_type()函数正确注册。
  2. 检查wp_query的参数是否正确。
  3. 在WordPress后台检查是否有相应类型的帖子存在。

示例:注册自定义帖子类型

代码语言:txt
复制
function create_portfolio_post_type() {
    register_post_type('portfolio',
        array(
            'labels' => array(
                'name' => __('作品集'),
                'singular_name' => __('作品')
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'portfolio'),
        )
    );
}
add_action('init', 'create_portfolio_post_type');

确保在主题的functions.php文件中添加上述代码或在自定义插件中实现。

通过以上步骤,你应该能够正确地使用wp_query来查询动态自定义帖子类型,并解决可能遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WordPress自定义查询:WP_Query的使用

wordpress默认会根据网址调用数据,不能满足我们所有建站要求,而WP_Query可以用于查询任何你想要的内容,相当于自定义数据调用。 wordpress的主循环 两段代码是等效的,为了保持代码的简洁性,WordPress 隐藏了全局的主循环变量 $wp_query。 WP_Query最基础用法 <?...php /** * WordPress 查询综合参考 * * 官方文档: http://codex.wordpress.org/Class_Reference/WP_Query * 源代码: http:...' => 10, //(整数) - 每页显示的文章数量 (2.1和以后的版本可用), 使用'posts_per_page'=-1 显示所有文章,如果查询处于订阅源中,WordPress用 'posts_per_rss...通常在页面中使用 (编辑页面时有一个页面序号的字段) 和附件 ( 插入 / 上传媒体相册对话框中的数字), 但是不能对文章类型 'menu_order' 使用数字值 (默认都为 0).

1.4K20

优化WordPress性能的高级指南

获取帖子(Fetching Posts) WordPress提供从数据库中获取任何类型的帖子(post)的方法。...这可能会导致不一致,特别是如果我们在代码中使用查询相关的过滤器,因为你在页面中不期望的帖子可能会被该函数返回。 使用WP_Query类 在我看来,这是从数据库中检索帖子的最佳方式。...基本上,我从数据库引擎中脱掉了一些工作,而是将其转移到PHP引擎,功能和在数据中处理的相同但在内存中,因此更快。 如何做的? 首选,我在查询中删除了post__not_in参数。...有时我们会发现自己在性能和动态之间进行权衡,但即使有这些障碍,持续缓存也是几乎每一个WordPress安装(installation )都应该利用的。...例如,如果我们在用户滚动我们的主页时动态加载更多的帖子,那么最好直接调用其他前端页面,这将获得被缓存的好处。 然后,我们可以通过浏览器中的JavaScript来解析结果。

7.1K20
  • CVE-2022-21661:通过 WORDPRESS SQL 注入暴露数据库信息

    今年 10 月,我们收到了来自 GiaoHangTietKiem JSC 的 ngocnb 和 khuyenn 的报告,涉及 WordPress 中的 SQL 注入漏洞。...首先,这是一个演示该漏洞的快速视频: 漏洞 该漏洞发生在 WordPress Query ( WP_Query ) 类中。WP_Query对象用于对 WordPress 数据库执行自定义查询。...插件和主题使用此对象来创建他们的自定义帖子显示。  当插件使用易受攻击的类时,就会出现该漏洞。一个这样的插件是Elementor Custom Skin 。...在这个插件中,易受攻击的WP_Query类在ajax-pagination.php的get_document_data方法中被利用: public function get_document_data...同样, Contact Form 7中的文件上传漏洞插件也被检测为被趋势科技传感器利用。在这种情况下,错误通过插件暴露,但存在于 WordPress 本身中。

    4.4K10

    WordPress自定义查询WP_Query使用方法大全

    自定义调用文章在网站建设中很常用,wordpress也很人性化,用新建查询new WP_Query就能实现相关功能。WP_Query怎么用呢?...>   两段代码是等效的,为了保持代码的简洁性,WordPress 隐藏了全局的主循环变量 $wp_query。   WP_Query最基础用法 <?...php /** * WordPress 查询综合参考 * * 官方文档: http://codex.wordpress.org/Class_Reference/WP_Query * 源代码: http:...' => 10, //(整数) - 每页显示的文章数量 (2.1和以后的版本可用), 使用'posts_per_page'=-1 显示所有文章,如果查询处于订阅源中,WordPress用 'posts_per_rss...通常在页面中使用 (编辑页面时有一个页面序号的字段) 和附件 ( 插入 / 上传媒体相册对话框中的数字), 但是不能对文章类型 'menu_order' 使用数字值 (默认都为 0).

    4.3K41

    WordPress 文章查询教程3:如何使用文章类型参数

    在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...'自定义文章类型' - 如何 product 产品 只获取页面: $query = new WP_Query( array( 'post_type' => 'page' ) ); 获取任何类型的文章(除了文章修订和除了文章类型的...'exclude_from_search' 的属性为 true 的所有文章类型): $query = new WP_Query( array( 'post_type' => 'any' ) ); 获取多个文章类型的文章...,包括自定义文章类型: $query = new WP_Query( array( 'post_type' => array( 'post', 'page', 'product', 'movie' )

    68830

    WordPress 首页文章如何使用分类过滤?

    如果懂代码,WordPress 的 WP_Query 支持 category__in 和 category__not_in 这两个参数,使用 pee_get_posts hook 处理一下就好了。...博客 支持一键将文章中图片下载到 WordPress 媒体库 搜索优化 支持限制和关闭搜索的 WordPress 插件 编辑器优化 优化 WordPress 传统的 TinyMCE 编辑器 添加下划线等按钮...配置器 全自动 WordPress 配置器,不用一行代码就可以开发。 支持自定义文章类型,自定义字段,自定义分类,分类选项,全局选项。...Script Loader 通过恢复 WordPress 联合加载方式来优化 WordPress 后台脚本加载。 外部链接 将文章或评论中的外部链接加上安全提示的中间页。...站点选项 查看和管理所有非 WordPress 系统自动生成的站点选项。 如果你觉得某个选项无用,可以直接删除它。 后台论坛 WordPress 后台论坛,支持创建帖子,分组,消息。

    1.7K20

    WordPress 文章查询教程9:如何使用自定义字段(post meta)参数

    在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...我写这一系列文章的目的也是为了方便自己使用这些参数的时候方便查询,所以如果你也是经常进行 WordPress 二次开发的话,建议收藏本文。...type (string) – 自定义字段的类型,支持的类型有:'NUMERIC', 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED',...简单自定义字段查询 获取自定义字段的 key 是 'color',而 value 则任意值都可的文章: $query = new WP_Query( array( 'meta_key' => 'color

    1.2K10

    C# 中的动态类型

    这意味着 object 类型是整个类型系统的公共父类。当我们研究更神奇的动态行为时,这一事实本身就能为我们提供帮助。这里的想法是开发这种“代码感”,以便于您了解如何驾驭 C# 中的动态类型。...动态类型消除了自然 API 代码中的万能字符串。这就开启了像 IronPython 一样位于 CLR 之上的动态语言。...DynamicObject 动态类型 DynamicObject 提供对动态类型的精确控制。您可以继承该类型并重写动态行为。例如,您可以定义如何设置和获取类型中的动态成员。...该类有 14 个虚方法,它们定义了类型的动态操作,每个虚方法都允许重写以指定动态行为。 假设您想要精确控制动态 JSON 中的内容。...这意味着其属性类型来自泛型类型 T。动态 JSON 成员位于字典中,并且仅存储泛型类型。此动态类型允许同一类型的同类成员集合。尽管它允许动态成员集,但您可以强类型其行为。

    3.3K50

    使用 WP_Query 而不是 query_posts 自定义 WordPress 查询

    前面我们介绍了 WordPress 的主循环和全局变量,那么如果需要自定义 WordPress 查询进行一些事情,可以有两种方法,最容易的方法是使用 query_posts 函数,另外一种方法就是自定义...使用 WP_Query 自定义查询 所以最好的方法是使用 WP_Query 来创建自定义 WordPress 查询,这样创建的查询和 WordPress 主循环隔离开,并不会影响主循环的行为。...> 上面我们用了 WP_Query 的两个方法,分别是 have_posts 和 the_post,这两个方法的具体意思,可以参考这篇文章全局变量和 WordPress 主循环里面的介绍。...这样做的好处是在循环中,我们可以使用 WordPress 标准的文章相关的模板函数,比如下面是使用自定义的 Loop 先是最新5篇文章的完整代码: 最新日志 简单总结 使用 WP_Query 创建自定义 WordPress 查询是不会干扰默认的 WordPress 主循环,使用它我们完全可以在一个页面同时运行两个或者以上完全独立的 WordPress

    36020

    WordPress 文章查询教程4:如何使用文章状态参数

    在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...默认值是 'publish',就是获取公开状态的文章,如果用户在已登录的情况下,'private' 状态的文章也会被获取到,另外默认情况下公开属性的自定义文章状态的文章也会获取到。...'any' – 获取除了 'inherit', 'trash' 和 'auto-draft' 状态的文章,如果有自定义文章状态,并且它的 'exclude_from_search' 属性为 true,这类状态的文章也会被获取...只显示草稿状态的文章: $query = new WP_Query( array( 'post_status' => 'draft' ) ); 显示多个状态的文章: $query = new WP_Query

    65630

    开发者的福音:GenerateWP 自动生成WordPress 开发相关代码

    开发 WordPress 主题或插件的时候,有很多比较常用的功能,例如边栏、自定义菜单、自定义文章类型等等,都需要手动书写或者复制,需要大量的时间和精力,但是有人专门做了一些工具来生成这些代码 - GenerateWP.com...简介 官方地址:http://generatewp.com/ GenerateWP 是一个可以在线自动生成 WordPress 功能代码的网站,有国外牛人创建的。...(管理工具条) User Contact Methods Generator 为 WordPress 用户资料创建自定义联系方式 WP_Query Generator 使用 WP_Query 类别功能创建自定义...类别功能创建自定义评论查询 wp-config.php Generator 在 wp-config.php 文件创建自定义配置设置 Plugin Readme Generator 为你的 WordPress...使用 wp_register_script() 功能注册自定义脚本 Register WordPress Styles 使用 wp_register_style() 功能注册自定义 WordPress

    1.6K50

    WordPress 文章查询教程1:如何使用分类,标签或其他分类模式参数

    在 WordPress 中,使用 WP_Query 进行文章查询是最常见的操作,学习好这方面的操作, WordPress 开发基本就学会了一半。...「WordPress果酱」将通过一系列教程讲解如何使用 WP_Query 进行 WordPress 文章查询。...第一讲,把 WP_Query 最常用的分类,标签和分类模的所有相关的参数讲解一下,例子也是来自官方文档,学完之后,你可以在 WordPress 进行非常复杂的多重筛选。...单个分类模式查询 在 people 这个自定义分类模式获取值为 bob 的文章: $query = new WP_Query(array( 'post_type' => 'post',...比如:获取在 quotes 分类中或者同时有 quote 文章格式和在 wisdom 分类中的文章: $query = new WP_Query(array( 'post_type' => 'post

    1.5K51

    10个WordPress的query_posts语句使用技巧

    Query_posts语句是WordPress最实用的语句之一。 正是在query_posts的作用下,WordPress的Loop循环才能够调用并显示所有文章内容。...Query_posts中说到: query_posts函数仅用于修改主页循环(Loop),而不是一种在页面上生成次级循环的手段。...> 当然,使用哪种方法完全由个人习惯决定,不过我认为用数组更为方便,原因如下: 便于阅读,可以利用if语句更轻松地给数组添加条件,以动态生成查询一些查询参数(某些使用频率较低的参数,如分类参数和标签参数...你可以按文章类型调用自己想要的日志、页面或附件。 对附件的调用可能是最有趣但同时被使用频率也是最低的一个。...置顶文章 WordPress在 2.7版本中引入了文章置顶功能。 这使用户选定的文章能够不受时间的排序标准,总是显示在文章列表的最上方。

    75690

    史上最详细的WordPress的自定义文章类型指南(1)

    但是WordPress中一些比较重要的部分,比如WP_Query , REST API, 包括本文要介绍的Post Type部分都是面向对象,而且WordPress中的一些插件就是全部使用面向对象,比如...对于 WordPress 的普通用户来说,最方便的就是在主题文件夹的functions.php 中写代码进行各种自定义,执行各种 WordPress 的函数,当然也可以在这里注册新的文章类型。...这是因为在WordPress中启用了URL规则重写(rewrite)功能,会自动把和Post相关的动态URL改写为伪静态URL,这也会影响到自定义的Post Type。...WordPress还会自动再加回来。 不管用哪种方式,再次打开刚才的文章链接就不会404了。可以愉快的在自定义文章类型下面发布文章了。...但是如果你想对其进一步自定义的话,WordPress并没有在后台提供自定义文章类型的固定链接设置,上文提到的Settings中找到Permalink Settings这种设置方式只对自带的Post有效,

    4.4K20

    一文说透WordPress的自定义文章类型

    Post Type,字面意思就是“文章类型”或者叫“帖子类型”,其实更准确的说法应该叫“内容类型”,是WordPress用来区分不同类型不同用途的内容的一个术语。...因为从本质上讲,它们都是WordPress业务数据库里同一个数据表wp_posts 中的数据,数据结构都是一样的,不同的Post Type之间的区别就是在post_type这个字段。见下图: ?...不管哪种类型的内容,基本在WordPress中都是可以实现的。 只要遇到了一些信息你觉得可能用默认的文章或者页面的形式不好展现,那么可能你就需要用到自定义文章类型了。...在WordPress中可以针对自定义文章类型使用专门的页面展示显示形式,自由设置不同于默认文章的显示样式,以便突出显示这类内容,聚焦优质内容。 更好的过滤结果。...在需要按条件显示WordPress文章时,WP_Query默认的搜索是Post, 这时默认会把自定义文章类型排除出去,除非你特意指明了需要的类型,这样可以对过滤结果有更好的控制。 更好的编辑内容。

    1.9K00

    WordPress 技巧:如何修改自定义日志类型的固定链接

    如果你使用过 WordPress 自定义日志类型(Custom Post Type)的话,一定发现自定义类型日志的的固定链接(Permalink)是不受制于后台 > 设置 > 固定链接中为 Post 置顶的链接格式...,强制设置为 /custom_post_type/post_name/,如果我们要把自定义日志类型的固定链接修改为 /custom_post_type/post_name/ ,如何设置呢?...假设你已经创建了一个 book 的自定义日志类型,将其固定链接设置为:/book/post_id/,在当前主题的 functions.php 文件中添加如下代码: add_filter('post_type_link...post_type=book&p=$matches[1]', 'top' ); } 添加好之后,这个固定链接是不会立刻生效的,需要到 后台 > 设置 > 固定链接 点击下保存按钮,刷新 WordPress...的 Rewrite 缓存。

    67330

    wordpress 为自定义类型文章新增自定义字段的方法-文曦博客

    wordpress强大之处在于有很强的可自定义性,使得插件、主题的开发变得及其便利。就拿我们今天要说的自定义文章添加自定义字段来说,就很便捷。         ...比如我们要录入一个客户信息到wordpress中,那么需要的字段可不仅仅是什么标题、内容、摘要这么简单了,我们可能需要录入客户的性别、姓名、电话、邮件等等。...又比如产品,需要额外的产品价格、产品大小等属性,那么就需要给文章类型添加Meta Box,通俗点理解就是自定义字段表单,下面我们以添加产品价格为例进行说明。         ...自定义Meta Box需要用到add_meta_box函数,其新增的信息会保存到数据库wp_postmeta表。         ...',//回调函数         'product',//所添加的文章类型         'side',         'low'     );} 2、创建回调函数product_director_meta_box

    1.1K30
    领券