Hook: post.default_image
Overview
Type: Filter
Location: app/helpers.php - get_default_post_image()
Allows themes and modules to override the fallback image displayed when a post has no featured image. The administrator sets a global default via Settings > Reading > Default Post Image. This filter runs after that value is retrieved, giving developers a chance to return a different URL based on context.
Parameters
| Param | Type | Description |
|---|---|---|
$imageUrl |
string or null | Current default image URL from settings |
$context |
mixed | Post model instance (or null) |
Return
Must return string|null - the image URL to use, or null to fall back to the SVG placeholder.
Usage Example
Set a different default image per post category:
use App\Facades\Hook;
Hook::addFilter('post.default_image', function (?string $url, $post) {
if ($post?->categories->contains('slug', 'technology')) {
return '/images/defaults/tech-cover.jpg';
}
return $url;
});
Related Hooks
post.frontend_url - Customize post public URL
post.content.render - Filter post HTML before API response
PolyCMS is an open-source content management system for modern web applications, inspired by the WordPress plugin and theme ecosystem but built on top of the Laravel framework. It is designed to provide a complete foundation for content publishing, e-commerce, multi-language support, and extensible module architecture — powered by a Vue 3 admin panel with data served entirely through RESTful APIs.
Whether you're building a blog, a documentation site, an online store, or a multi-tenant SaaS platform, PolyCMS aims to give you a comprehensive starting scaffold so you can ship quickly and extend easily through integrated modules and themes. In particular, themes in PolyCMS follow a multi-theme architecture — one Main theme and an unlimited number of Sub themes can run side by side on the same installation.
We hope this ready-made foundation proves useful for building your next website, blog, or web app, saving you from having to start completely from scratch.