183 lines
4.3 KiB
PHP
183 lines
4.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Theme setup.
|
|
*/
|
|
|
|
namespace App;
|
|
|
|
use Illuminate\Support\Facades\Vite;
|
|
|
|
/**
|
|
* Inject styles into the block editor.
|
|
*
|
|
* @return array
|
|
*/
|
|
add_filter('block_editor_settings_all', function ($settings) {
|
|
$style = Vite::asset('resources/css/editor.scss');
|
|
|
|
$settings['styles'][] = [
|
|
'css' => "@import url('{$style}')",
|
|
];
|
|
|
|
return $settings;
|
|
});
|
|
|
|
/**
|
|
* Inject scripts into the block editor.
|
|
*
|
|
* @return void
|
|
*/
|
|
add_filter('admin_head', function () {
|
|
if (! get_current_screen()?->is_block_editor()) {
|
|
return;
|
|
}
|
|
|
|
$dependencies = json_decode(Vite::content('editor.deps.json'));
|
|
|
|
foreach ($dependencies as $dependency) {
|
|
if (! wp_script_is($dependency)) {
|
|
wp_enqueue_script($dependency);
|
|
}
|
|
}
|
|
|
|
echo Vite::withEntryPoints([
|
|
'resources/js/editor.js',
|
|
])->toHtml();
|
|
});
|
|
|
|
add_action( 'enqueue_block_editor_assets', function(){
|
|
wp_enqueue_script(
|
|
'restrict-core-blocks',
|
|
Vite::asset('resources/js/admin/block-restrictions.js'),
|
|
array( 'wp-blocks', 'wp-dom-ready', 'wp-edit-blocks', 'wp-hooks' ),
|
|
'v1.0.0',
|
|
true
|
|
);
|
|
});
|
|
|
|
/**
|
|
* Use the generated theme.json file.
|
|
*
|
|
* @return string
|
|
*/
|
|
add_filter('theme_file_path', function ($path, $file) {
|
|
return $file === 'theme.json'
|
|
? public_path('build/assets/theme.json')
|
|
: $path;
|
|
}, 10, 2);
|
|
|
|
/**
|
|
* Register the initial theme setup.
|
|
*
|
|
* @return void
|
|
*/
|
|
add_action('after_setup_theme', function () {
|
|
/**
|
|
* Disable full-site editing support.
|
|
*
|
|
* @link https://wptavern.com/gutenberg-10-5-embeds-pdfs-adds-verse-block-color-options-and-introduces-new-patterns
|
|
*/
|
|
remove_theme_support('block-templates');
|
|
|
|
/**
|
|
* Register the navigation menus.
|
|
*
|
|
* @link https://developer.wordpress.org/reference/functions/register_nav_menus/
|
|
*/
|
|
register_nav_menus([
|
|
'primary_navigation' => __('Primary Navigation', 'sage'),
|
|
]);
|
|
|
|
/**
|
|
* Disable the default block patterns.
|
|
*
|
|
* @link https://developer.wordpress.org/block-editor/developers/themes/theme-support/#disabling-the-default-block-patterns
|
|
*/
|
|
remove_theme_support('core-block-patterns');
|
|
|
|
/**
|
|
* Enable plugins to manage the document title.
|
|
*
|
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#title-tag
|
|
*/
|
|
add_theme_support('title-tag');
|
|
|
|
/**
|
|
* Enable post thumbnail support.
|
|
*
|
|
* @link https://developer.wordpress.org/themes/functionality/featured-images-post-thumbnails/
|
|
*/
|
|
add_theme_support('post-thumbnails');
|
|
|
|
/**
|
|
* Enable responsive embed support.
|
|
*
|
|
* @link https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-support/#responsive-embedded-content
|
|
*/
|
|
add_theme_support('responsive-embeds');
|
|
|
|
/**
|
|
* Enable HTML5 markup support.
|
|
*
|
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#html5
|
|
*/
|
|
add_theme_support('html5', [
|
|
'caption',
|
|
'comment-form',
|
|
'comment-list',
|
|
'gallery',
|
|
'search-form',
|
|
'script',
|
|
'style',
|
|
]);
|
|
|
|
/**
|
|
* Enable selective refresh for widgets in customizer.
|
|
*
|
|
* @link https://developer.wordpress.org/reference/functions/add_theme_support/#customize-selective-refresh-widgets
|
|
*/
|
|
add_theme_support('customize-selective-refresh-widgets');
|
|
}, 20);
|
|
|
|
/**
|
|
* Register the theme sidebars.
|
|
*
|
|
* @return void
|
|
*/
|
|
add_action('widgets_init', function () {
|
|
$config = [
|
|
'before_widget' => '<section class="widget %1$s %2$s">',
|
|
'after_widget' => '</section>',
|
|
'before_title' => '<h3>',
|
|
'after_title' => '</h3>',
|
|
];
|
|
|
|
register_sidebar([
|
|
'name' => __('Primary', 'sage'),
|
|
'id' => 'sidebar-primary',
|
|
] + $config);
|
|
|
|
register_sidebar([
|
|
'name' => __('Footer', 'sage'),
|
|
'id' => 'sidebar-footer',
|
|
] + $config);
|
|
});
|
|
|
|
add_filter('admin_post_thumbnail_size', function(){
|
|
return "medium";
|
|
});
|
|
|
|
add_action( 'init', __NAMESPACE__ . '\\cors', 15 );
|
|
function cors() {
|
|
|
|
if(WP_ENV == 'development'):
|
|
header( 'Access-Control-Allow-Origin: *' );
|
|
endif;
|
|
|
|
}
|
|
|
|
$image_srcset = new Utilities\ImageSrcset;
|
|
$image_srcset->add(['name' => 'hero', 'width' => 1920, 'height' => 1000]);
|
|
add_image_size('lazy', 50, 50);
|