### [wordpress给同一类型文章自动添加特色图片](https://pmself.com/article/1264) **Published:** 2022-03-28T14:25:45 **Author:** eganvi **Excerpt:** wordpress作为常见的网站框架,使用率很高。但是大部分使用wordpress的用户没有太多php基础,所… ![](https://pmself.com/wp-content/uploads/2022/03/20220328222452.png) wordpress作为常见的网站框架,使用率很高。但是大部分使用wordpress的用户没有太多php基础,所以在修改源码上会有一些难处。有很多人会使用DJD等投稿插件,但是又会关闭许多编辑器的功能,所以我们需要通过修改php文件的方式,给特定类型的文章自动添加特色图片,这骗经验分享给wordpress使用者们。 首先在wordpress中新建某一类型的文章,用于做实验。比如我在这里新建一种类型叫做”有渔编程”的文章类型。注意如果没有修改过wp-config.php命名规则的话,最好设定别名为英文名。 新建好文章类型后,在类型中选择对应文章类型下方的编辑按钮。这时候可以看到浏览器下方出现的链接,通过肉眼查找tag\_ID=的方法,这个数字就是该类型的ID。比如我的类型就是3,记住这个值。 开发人员在Theme文件夹中找到function.php,普通用户在wordpress–>外观–>编辑,然后右边菜单栏中找到function.php就可以了。 1. 编辑function.php文件。首先定义一个upload\_image函数。具体写法如下:function upload\_image(){global $post;}先定义post作为传导函数,定义为全局函数,这样才能调用在任何情况下触发post行为。 2. 首先来判断用户有没有上传特色图片,因为如果是用wordpress作站的话,大部分特色图片还是用户自己设定的,避免干扰。表达式为$already\_has\_thumb = has\_post\_thumbnail($post->ID);直接加在刚才那句下面就行。 3. 加上限定条件,因为我们是要在“有渔”这个栏目下的文章上加上特色图片,所以需要wordpress自带的判定函数。因为第二步我们已经知道了我们的类型是3,所以只需要填入if(is\_category(‘3’)) {} 4. 再加一层判断,判定其是否有特色图片。代码为if (!$already\_has\_thumb)  {}这一层是为了防止用户自己设置了特色图片。 5. 这里的42是我要设置的封面图的id,你可以通过类似第二步的方法获取图像的ID,显示为post=ID.set\_post\_thumbnail($post->ID, 42); 6. 函数构建完成,在function中对其进行调用。add\_action(‘the\_post’, ‘upload\_image’);add\_action(‘save\_post’, ‘upload\_image’);add\_action(‘draft\_to\_publish’, ‘upload\_image’);add\_action(‘new\_to\_publish’, ‘upload\_image’);add\_action(‘pending\_to\_publish’, ‘upload\_image’);最后一个是最重要的,因为我们的目标就是让投稿用户,尤其是DJD投稿用户不需要设置特色图片也能拥有。保存文件。 7. 10回到控制面板,发布两篇文章做测试。 **最后汇总,代码如下:** ``` function upload_image(){ global $post; $already_has_thumb = has_post_thumbnail($post->ID); if(is_category('3')) { if (!$already_has_thumb) { set_post_thumbnail($post->ID, 42); } } } add_action('the_post', 'upload_image'); add_action('save_post', 'upload_image'); add_action('draft_to_publish', 'upload_image'); add_action('new_to_publish', 'upload_image'); add_action('pending_to_publish', 'upload_image'); ``` **Tags:** WORDPRESS **Categories:** Wordpress, 技术 ---