建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

WordPress主题删除文章时自动删除缩略图及图片附件的代码操作法(wordpress网站自动抓取文章第一张图片为缩略图)

GG网络技术分享 2025-03-18 16:12 0


WordPress主题删除文章时自动删除缩略图及图片附件的代码操作法

当WordPressCMS/博客主题删除文章时,附件(如上传到文章中的媒体库的图像)不会自动删除,这会占用网站上的空间。因此,以下描述了在通过几行代码删除文章时删除缩略图和图像附件的简单方法。没有必要手动查找和删除媒体库,这是准确和有效的。


具体代码

  1. /* 删除文章时删除图片附件
  2. /* ———————— */
  3. function delete_post_and_attachments($post_ID) {
  4. global $wpdb;
  5. //删除特色图片
  6. $thumbnails = $wpdb->get_results( “SELECT * FROM $wpdb->postmeta WHERE meta_key = ‘_thumbnail_id’ AND post_id = $post_ID” );
  7. foreach ( $thumbnails as $thumbnail ) {
  8. wp_delete_attachment( $thumbnail->meta_value, true );
  9. }
  10. //删除图片附件
  11. $attachments = $wpdb->get_results( “SELECT * FROM $wpdb->posts WHERE post_parent = $post_ID AND post_type = ‘attachment’” );
  12. foreach ( $attachments as $attachment ) {
  13. wp_delete_attachment( $attachment->ID, true );
  14. }
  15. $wpdb->query( “DELETE FROM $wpdb->postmeta WHERE meta_key = ‘_thumbnail_id’ AND post_id = $post_ID” );
  16. }
  17. add_action(‘before_delete_post’, ‘delete_post_and_attachments’);

代码使用说明

将上述代码放到当前主题 functions.php 文件中即可使用

wordpress网站自动抓取文章第一张图片为缩略图

我们使用的wordpress博客主题一般都是缩略图加文字的形式显示,一般的主题缩略图就是发布的时候设置的特色图片。

下面介绍如果让wordpress网站自动抓取文章中第一张图作为缩略图的方法。

第一步:在主题的functions.php函数中加入下面代码:

//实现获取文章第一张图

functionwp_that_image(){

global$post,$posts;

ob_start();

ob_end_clean();

preg_match('/<imgs[^<>]*?src=['"]([^'"<>]+?)['"][^<>]*?>/i',$post->post_content,$matche);

if($matche[1])

return$matche[1];

//如果没有图,我们可以自定义一张

return'img.jpg';

}

第二步:在模板中进行调用,代码如下:

<imgsrc="<?phpechowp_that_image();?>"alt="<?phpthe_title();?>"title="<?phpthe_title();?>"width="240px"height="180px"/>

图片大小可以根据自己页面的需要进行调整。

标签:

提交需求或反馈

Demand feedback