67 lines
2.0 KiB
PHP
67 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
/**
|
|
* Add <body> classes
|
|
*/
|
|
add_filter('body_class', function (array $classes) {
|
|
// Add page slug if it doesn't exist
|
|
if (is_single() || is_page() && !is_front_page()) {
|
|
if (!in_array(basename(get_permalink()), $classes)) {
|
|
$classes[] = basename(get_permalink());
|
|
}
|
|
}
|
|
|
|
// Add class if sidebar is active
|
|
if (display_sidebar()) {
|
|
$classes[] = 'sidebar-primary';
|
|
}
|
|
|
|
return $classes;
|
|
});
|
|
|
|
/**
|
|
* Add "… Continued" to the excerpt
|
|
*/
|
|
add_filter('excerpt_more', function () {
|
|
return ' … <a href="' . get_permalink() . '">' . __('Continued', 'sage') . '</a>';
|
|
});
|
|
|
|
/**
|
|
* Template Hierarchy should search for .blade.php files
|
|
*/
|
|
array_map(function ($type) {
|
|
add_filter("{$type}_template_hierarchy", function ($templates) {
|
|
return call_user_func_array('array_merge', array_map(function ($template) {
|
|
$transforms = [
|
|
'%^/?(resources/views)?/?%' => config('sage.disable_option_hack') ? 'resources/views/' : '',
|
|
'%(\.blade)?(\.php)?$%' => ''
|
|
];
|
|
$normalizedTemplate = preg_replace(array_keys($transforms), array_values($transforms), $template);
|
|
return ["{$normalizedTemplate}.blade.php", "{$normalizedTemplate}.php"];
|
|
}, $templates));
|
|
});
|
|
}, [
|
|
'index', '404', 'archive', 'author', 'category', 'tag', 'taxonomy', 'date', 'home',
|
|
'frontpage', 'page', 'paged', 'search', 'single', 'singular', 'attachment'
|
|
]);
|
|
|
|
/**
|
|
* Render page using Blade
|
|
*/
|
|
add_filter('template_include', function ($template) {
|
|
$data = array_reduce(get_body_class(), function ($data, $class) use ($template) {
|
|
return apply_filters("sage/template/{$class}/data", $data, $template);
|
|
}, []);
|
|
echo template($template, $data);
|
|
|
|
// Return a blank file to make WordPress happy
|
|
return get_theme_file_path('index.php');
|
|
}, PHP_INT_MAX);
|
|
|
|
/**
|
|
* Tell WordPress how to find the compiled path of comments.blade.php
|
|
*/
|
|
add_filter('comments_template', 'App\\template_path');
|