WordPress特色图片自动化:使用Featured Image from URL插件与PHP实现随机默认图片


前言

之前使用Git主题的时候可以自动将文章中第一张图片设置成缩略图,如果没有缩略图会在自己设置的图片当中进行随机显示。迁移主机更换主题后现在想恢复这个功能。探索了一下最终选择了插件Featured Image from URL和自行编写一小部分PHP代码来实现差不多的效果。


Featured Image from URL (FIFU)

插件市场:https://wordpress.org/plugins/featured-image-from-url/
官网:https://fifu.app/

启用插件后,我们前往 设置->图片,打开默认图片设置,这里可以设置默认的特色图片的链接,不过这里只能写一个链接也就是这个图片只能显示一张。
前往 设置->自动,打开自动设置的两个从文章内容自动设置特色媒体覆盖现有的特色媒体。这里说一下,如果是免费版本,是没有一键刷新所有文章特色图片的功能的。他只会在新文章发布和旧文章更新的时候设置特色图片,所以要想让插件安装后旧的文章的设置特色图片,你需要对文章进行一次更新,快速编辑 -> 更新 也可以。
至此简单的设置就算结束,其余的像优化等功能按需使用。


使每次刷新页面都是不同的默认特色图片

这个方案有一个问题,每次刷新的时候都会是同一页都是同一张,并且可能会造成FIFU插件的添加缺失的媒体这个功能失效。
具体思路就是使用 PHP 创建一个随机图片的API链接脚本,然后在默认特色图片那里填入这个链接即可。
首先我们先创建一个 PHP 文件名字随意比如(ri.php),并将其放在你的博客根目录/var/www/html,就是你能看到wp-config.php等文件的那个目录。

<?php
// --- 开始配置 ---

// 1. 在这里填入上所有图片URL
// 每个URL用单引号' '包围,并用逗号,隔开
$image_urls = [
    'https://your-domain.com/image_A.jpg',
    'https://your-domain.com/image_B.png',
    'https://your-domain.com/image_C.gif',
    'https://your-domain.com/image_D.webp',
    // 可以根据需要添加任意多张图片
];

// --- 结束配置 ---


// 2. 从上面的列表中随机选择一个URL
$random_image_url = $image_urls[array_rand($image_urls)];

// 3. 执行302重定向到被选中的图片URL
// 这会让浏览器或程序去加载那张随机图片
header('Location: ' . $random_image_url, true, 302);

// 确保重定向后脚本立即停止执行
exit();
?>

保存上传完成后,你可以尝试访问https://your-wordpress-site.com/ri.php来查看是不是会跳转到一张随机的图片上面去。
之后将这个链接填写到你的 FIFU 插件的默认特色图片链接即可。请注意使用这种方法就不要下面的打开修改文章内容-> 添加缺失的媒体这个选项了。这个选项打开后虽然能够成功的为没有默认特色图片的文章插入你的图片,但是删除功能并不稳定。可能是因为链接到的是PHP的原因,我尝试了几次会有几个文章删除失败,使用图片格式的链接就没有这个问题。

进阶方案思路,这个方法的话因为每次同一个页面请求的都是相同的https://your-wordpress-site.com/ri.php链接,所以同一个页面只会请求一次,因此导致了页面内的所有默认特色图片都是同一张。最简单的方法就是在这个URL后面加上一个随机参数,但问题在于这需要修改 FIFU 插件的代码或者是主题的 functions.php 的代码,前者会因插件更新而失效,后者会因主题或者WordPress更新而失效。而对于修改 function.php 也有插件可以实现,这样可以保证主题和WordPress更新的时候不受影响,同时有一些高级主题也支持在 function.php 上追加内容。但总体来说还是有些太麻烦了,所以我这里就只给一个大概的思路,并没有尝试去实现。


文章封面:WordPress特色图片自动化:使用Featured Image from URL插件与PHP实现随机默认图片

订阅评论
提醒
用户头像

0 评论
最旧
最新 最多投票