- Совместимость с XF
- 2.3.x
- Short Description
- A lightweight template hack to automatically rotate forum logos for seasons, events, or subtle brand
WP Seasonal Logo Rotator (Auto-Scan Hack)
A lightweight template hack to automatically rotate forum logos for seasons, events, or subtle brand refreshes simply by dropping images into a folder.
No add-ons.
No filename editing.
No maintenance.
What This Does
Scans a logo folder automatically
Selects one image at random on each page load
Updates instantly when images are added or removed
Ideal for seasonal or event-based branding
Installation
1. Create a logo folder
Create this folder on your server:
Create list.php inside the same folder.
Optional check:
Admin Panel → Appearance → Styles → Templates → extra.less
Adjust width/height to match your logo.
4. Add JavaScript
Admin Panel → Appearance → Templates → PAGE_CONTAINER
Paste after {$ldJsonHtml|raw}
Notes
Disclaimer
This is a simple template hack, not an add-on.
Use only if you are comfortable exposing logo filenames via list.php.
A lightweight template hack to automatically rotate forum logos for seasons, events, or subtle brand refreshes simply by dropping images into a folder.
No add-ons.
No filename editing.
No maintenance.
What This Does
Scans a logo folder automatically
Selects one image at random on each page load
Updates instantly when images are added or removed
Ideal for seasonal or event-based branding
Installation
1. Create a logo folder
Create this folder on your server:
2. Add list.php
Create list.php inside the same folder.
PHP:
<?php
header('Content-Type: application/json');
$allowed = ['webp', 'png', 'jpg', 'jpeg', 'gif', 'svg'];
$files = [];
foreach (scandir(__DIR__) as $file) {
if ($file === '.' || $file === '..' || $file === 'list.php') continue;
if (in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), $allowed, true)) {
$files[] = $file;
}
}
echo json_encode($files);
3. Add CSS
Admin Panel → Appearance → Styles → Templates → extra.less
CSS:
.p-header-logo {
position: relative;
width: 350px;
height: 300px;
}
.p-header-logo img {
visibility: hidden;
}
.p-header-logo::before {
content: "";
position: absolute;
inset: 0;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
}
4. Add JavaScript
Admin Panel → Appearance → Templates → PAGE_CONTAINER
Paste after {$ldJsonHtml|raw}
Код:
<script>
(async function () {
const folderPath = '/styles/season_logos/';
try {
const res = await fetch(folderPath + 'list.php');
if (!res.ok) return;
const logos = await res.json();
if (!logos.length) return;
const logo = logos[Math.floor(Math.random() * logos.length)];
const style = document.createElement('style');
style.textContent = `
.p-header-logo::before {
background-image: url("${folderPath}${logo}");
}
`;
document.head.appendChild(style);
} catch (e) {}
})();
</script>
- Logo changes on each page load
- Clear browser cache after setup
- Mobile sizing may need adjustment in extra.less
- list.php exposes image filenames only
Disclaimer
This is a simple template hack, not an add-on.
Use only if you are comfortable exposing logo filenames via list.php.