我用GPT写了个Wordpress插件:简单远程特色图

文章目录[隐藏]

前言

要是没有GPT,我真不敢相信我能写出Wordpress,而且是几分钟就能完成,就是自己真的投入去写,那也要调试学习,可能需要的时间要很长,但是使用ChatGPT ,只要提出你想要实现的功能,刷刷,几秒就出来了,加上调试时间,真的几分钟就能出一个简单的Wordpress插件,今天就介绍一下我是如何使用GPT给Wordpress写了一个简单的远程特色图片插件。

需求

其实我这个插件需求并不是适合大众化的插件,所以我一直没有动力去认真写,只是自己想实现一个最简单的功能,就是写博的时候,使用特色图片的时候,我不想上传图片的本地媒体库,因为我所有图片都使用阿里云的OSS,并且加了CDN,我也想直接使用阿里云OSS里面的远程URL,作为特色图。然后找了一下相关的插件。有以下几种能实现特色图片远程链接的:

  1. External Media: 这个插件允许你从外部资源导入媒体文件到WordPress。你可以使用外部URL来作为特色图片。
  2. Featured Image by URL: 此插件允许你使用外部URL作为WordPress文章的特色图片。它很容易使用,可以与多种页面构建器兼容。
  3. WP External Links: 虽然这个插件主要用于管理外部链接的打开方式和样式,但它也支持使用外部图片。
  4. Dynamic Featured Image: 这个插件允许你为文章添加多个特色图片,这些图片可以来自外部源。
  5. Enhanced Media Library: 这个插件提供了对WordPress媒体库的增强功能,包括对媒体文件分类和标签的支持。虽然它主要针对本地媒体,但它可以帮助你更好地组织和管理媒体库。
  6. Media Library Assistant: 提供了对WordPress媒体库的广泛管理选项,包括元数据编辑、分类、标签以及高级搜索功能。它也可能支持对链接到外部URL的媒体的管理。
  7. FileBird – WordPress Media Library Folders: 这个插件使你可以在WordPress媒体库中创建文件夹来组织文件。它对于管理大量媒体文件尤其有用,但对于外部URL的支持可能有限。
  8. WP Media Folder: 这个插件为WordPress媒体库提供了类似于文件管理器的界面,并允许创建文件夹和子文件夹来管理媒体文件。它也可能提供对外部媒体链接的一定支持。

但是,发现这些插件都是功能太多了,我只要一个简单的功能,就是写文章或者页面的时候,插入特色图时,能使用远程的图片的URL。这些插件就等于我想吃牛肉,他们给了我一头牛。

实现

我试着找ChatGPT帮我写个插件,一开始,GPT是不肯帮我写的

image-20231207155102070

可能是我的需求他并不清楚,那么我接下来引导他构建,它就给我写出想要的代码了

image-20231207155255609

添加个预览按钮

image-20231207155441186

马上给我迭代代码,真是太Easy了

代码

 <?php
 /**
  * Plugin Name: Simple Remote Features Image
  * Description: A simple plugin to set featured images via external URLs.
  * Version: 1.0
  * Author: mailberry
  */
 ​
 // 安全性考虑,防止直接访问文件
 if ( ! defined( 'ABSPATH' ) ) {
     exit;
 }
 // 添加输入框和预览按钮到后台
 function srf_add_custom_meta_box() {
     add_meta_box( 'srf_meta', 'Featured Image URL', 'srf_meta_callback', 'post', 'side' );
 }
 add_action( 'add_meta_boxes', 'srf_add_custom_meta_box' );
 ​
 function srf_meta_callback( $post ) {
     $featured_url = get_post_meta( $post->ID, '_featured_image_url', true );
     echo '<input type="url" id="featured_image_url" name="featured_image_url" value="' . esc_attr( $featured_url ) . '" style="width:100%;">';
     echo '<button type="button" id="srf_preview_button">Preview</button>';
     echo '<div id="srf_preview" style="margin-top:10px;"></div>'; // 预览区域
 }
 ​
 // 保存特色图片URL
 function srf_save_post_meta( $post_id ) {
     if ( isset( $_POST['featured_image_url'] ) ) {
         update_post_meta( $post_id, '_featured_image_url', esc_url_raw( $_POST['featured_image_url'] ) );
    }
 }
 add_action( 'save_post', 'srf_save_post_meta' );
 ​
 // 显示特色图片
 function srf_get_the_post_thumbnail( $html, $post_id, $post_thumbnail_id, $size, $attr ) {
     $featured_url = get_post_meta( $post_id, '_featured_image_url', true );
 ​
     if ( $featured_url ) {
         $html = '<img src="' . esc_url( $featured_url ) . '" alt="">';
    }
 ​
     return $html;
 }
 add_filter( 'post_thumbnail_html', 'srf_get_the_post_thumbnail', 10, 5 );
 //直接在PHP文件中添加了简单的JavaScript
 function srf_add_admin_scripts() {
     ?>
     <script type="text/javascript">
         jQuery(document).ready(function($) {
             $('#srf_preview_button').click(function() {
                 var imageUrl = $('#featured_image_url').val();
                 if (imageUrl) {
                     $('#srf_preview').html('<img src="' + imageUrl + '" style="max-width:100%;height:auto;">');
                }
            });
        });
     </script>
     <?php
 }
 add_action( 'admin_footer', 'srf_add_admin_scripts' );
 ​

效果

image-20231207155837787

在写文章或者页面的后台,添加了个Featured Image URL功能,只要把远程图片的URL地址粘贴上去便可以。当然你也可以按Preview预览是否正确

image-20231207160037846

这是我测试的结果

总结

ChatGPT真是太好用了,一步到位,减少很多调试,学习成本,以后只要学会如何查看代码,构建思路,学习框架方向就可以了,功能实现上可以借助ChatGPT,感慨一下,2023真是Ai大元年呀。

生成海报
点赞 0

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

相关推荐