wordpress文章数据表wp_posts中的post_type字段(WordPress删除文章时自动删除特色图像及附件)
wordpress文章数据表wp_posts中的post_type字段
打开你的数据库,看看wp_posts表,你就会看到post_type字段,这个字段是干啥用的呢,其实是定义你发布文章的类型,你可以看到每条数据都有一个类型,来表示你的发布的文章是哪种的。
wordpress默认文章类型
wordpress中有如下的几种文章类型。
Post 文章
Page 页面
Attachment 附件
Revision 文章版本
Navigation Menu Item 导航菜单
除了这些默认文章类型,我们还可以通过register_post_type() 函数注册自定义文章类型,这样就可以添加自己想要类型的文章啦。
理解默认文章类型
文章类型 |
用途 |
备注 |
Post |
博客文章 |
核心文章类型 |
Page |
静态页面 |
用来显示一个内容比较固定的页面,文章可以有父级页面,每个父级页面可以有多个子页面。 |
Attachment |
文章附件 |
上传到某篇文章的媒体将会附加到这篇文章,作为这篇文章的附件,该媒体的 post_parent 字段将被设置为这篇文章的 ID,在多媒体上传页面上传的媒体没有附加到文章, post_parent 为空,guid 字段用来存储媒体文章的 URL。 |
Revision |
文章版本 |
每个版本都被附加到一篇文章,版本的post_parent字段为所附加到文章的文章 ID。 |
Navigation Menu Items |
导航菜单 |
每个菜单都包含若干个导航菜单项目,每个项目被保存为一条文章记录,menu_order 字段用来记录菜单的顺序,其他附加数据,如打开方式、父级菜单保存在 wp_postmeta 数据表中。 |
如上表所见,post_parent 是一个非常重要的字段,该字段存储着不同文章之间的父子关系,包括:
父级页面和子页面
每个文章的修订版本
附件和附件所附加到的文章
在自定查询中,我们有很多地方需要用到 post_parent 字段,例如:查询指定页面的子页面,下面的例子中 ID 是一个数字,字父级页面的 ID。
‘post_parent’ => ‘ID’
同样,我们也可以使用类似的方式显示附加到一篇文章的所有附件,或者查询没有附加到任何文章的附件(在多媒体管理界面上传的媒体通常没有附加到文章),查询这一类数据,只需要把 post_parent 的值设置为0就可以了:
‘post_parent’ => 0
对修订版本的查询我们不太可能用到,在这里就不多说了。
另外,我们可以使用 post_parent_in ,该参数的值为一个数组,用来查询一组文章或页面的子页面,由此可见理解这个post_type类型可以帮我们做出多种不同类型的文章页面。
WordPress删除文章时自动删除特色图像及附件
WordPress删除文章时默认是不会自动删除文章附属的特色图像及附件的。如果你的网站是个多作者或编辑发布文章,所有文章需要审核通过才能发布,而审核时就可能需要删除比较多的文章,但是如果删除文章每次都需手动删除特色图像及附件就会非常麻烦。即使是自己一个人的网站删除文章再手动删除附件也是怪麻烦的事。所以,我们有必要在删除文章的同时让程序自动删除特色图像及附件。以下是具体方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/* 删除文章时自动删除特色图像及附件 代码来源: www.wpzxbj.com */ function delete_post_and_attachments($post_ID) { global $wpdb; //删除特色图片 $thumbnails = $wpdb->get_results( \"SELECT * FROM $wpdb->postmeta WHERE meta_key = \'_thumbnail_id\' AND post_id = $post_ID\" ); foreach ( $thumbnails as $thumbnail ) { wp_delete_attachment( $thumbnail->meta_value, true ); } //删除附件 $attachments = $wpdb->get_results( \"SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = \'attachment\'\" ); foreach ( $attachments as $attachment ) { wp_delete_attachment( $attachment->ID, true ); } $wpdb->query( \"DELETE FROM $wpdb->postmeta WHERE meta_key = \'_thumbnail_id\' AND post_id = $post_ID\" ); } add_action(\'before_delete_post\', \'delete_post_and_attachments\'); |
代码说明:请将以上代码插入主题function.php文件保存即可。程序将在删除文章之前先删除特色图像及附件,然后再删除文章。
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » wordpress文章数据表wp_posts中的post_type字段(WordPress删除文章时自动删除特色图像及附件)