wordpress作为常见的网站框架,使用率很高。但是大部分使用wordpress的用户没有太多php基础,所以在修改源码上会有一些难处。有很多人会使用DJD等投稿插件,但是又会关闭许多编辑器的功能,所以我们需要通过修改php文件的方式,给特定类型的文章自动添加特色图片,这骗经验分享给wordpress使用者们。
首先在wordpress中新建某一类型的文章,用于做实验。比如我在这里新建一种类型叫做”有渔编程”的文章类型。注意如果没有修改过wp-config.php命名规则的话,最好设定别名为英文名。
新建好文章类型后,在类型中选择对应文章类型下方的编辑按钮。这时候可以看到浏览器下方出现的链接,通过肉眼查找tag_ID=的方法,这个数字就是该类型的ID。比如我的类型就是3,记住这个值。
开发人员在Theme文件夹中找到function.php,普通用户在wordpress–>外观–>编辑,然后右边菜单栏中找到function.php就可以了。
- 编辑function.php文件。首先定义一个upload_image函数。具体写法如下:function upload_image(){global $post;}先定义post作为传导函数,定义为全局函数,这样才能调用在任何情况下触发post行为。
- 首先来判断用户有没有上传特色图片,因为如果是用wordpress作站的话,大部分特色图片还是用户自己设定的,避免干扰。表达式为$already_has_thumb = has_post_thumbnail($post->ID);直接加在刚才那句下面就行。
- 加上限定条件,因为我们是要在“有渔”这个栏目下的文章上加上特色图片,所以需要wordpress自带的判定函数。因为第二步我们已经知道了我们的类型是3,所以只需要填入if(is_category(‘3’)) {}
- 再加一层判断,判定其是否有特色图片。代码为if (!$already_has_thumb) {}这一层是为了防止用户自己设置了特色图片。
- 这里的42是我要设置的封面图的id,你可以通过类似第二步的方法获取图像的ID,显示为post=ID.set_post_thumbnail($post->ID, 42);
- 函数构建完成,在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投稿用户不需要设置特色图片也能拥有。保存文件。
- 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');