Repository navigation
Expand file tree
/
Copy pathfunctions.php
More file actions
executable file
·106 lines (85 loc) · 3.06 KB
/
Copy pathfunctions.php
File metadata and controls
executable file
·106 lines (85 loc) · 3.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
if (!defined('ABSPATH')) {
exit;
}
// check for/require composer autoloader
if (!file_exists(dirname(__FILE__) . '/vendor/autoload.php')) {
die("The required composer dependencies must be installed for this theme. Please run 'composer install' from the theme root.");
}
require_once 'vendor/autoload.php';
$enqueue = new \WPackio\Enqueue( 'baseTheme', 'dist', '1.0.0', 'theme' );
$assets = $enqueue->register( 'app', 'main', [
'js' => true,
'css' => true,
'js_dep' => [],
'css_dep' => [],
'in_footer' => true,
'media' => 'all',
]);
$admin_assets = $enqueue->register( 'app', 'admin', []);
function enqueueScripts() {
global $assets;
foreach($assets['js'] as $js) {
wp_enqueue_script($js['handle']);
}
foreach($assets['css'] as $css) {
wp_enqueue_style($css['handle']);
}
}
// Add editor styles to TinyMCE
foreach($admin_assets['css'] as $css) {
add_editor_style($css['url']);
}
add_action('wp_enqueue_scripts', 'enqueueScripts');
// check for existence of dfrei/wp-util package
if (!class_exists('\WPUtil\Content')) {
die("The 'dfrei/wp-util' composer package is required for this theme. Please run 'composer install' from the theme root.");
}
// redirect image URLs for local development
if (defined('LOCAL_IMAGE_REDIRECT') && WP_HOME !== null && stripos(WP_HOME, '.local.com') !== -1) {
WPUtil\Dev\Image::local_image_redirect(LOCAL_IMAGE_REDIRECT);
}
require_once 'bootstrap/theme-setup.php';
require_once 'bootstrap/performance.php';
require_once 'bootstrap/media.php';
require_once 'bootstrap/acf.php';
require_once 'bootstrap/menus.php';
require_once 'bootstrap/plugins.php';
require_once 'bootstrap/blocks.php';
require_once 'bootstrap/theme-settings-pages.php';
require_once 'bootstrap/api.php';
require_once 'bootstrap/virtual-pages.php';
require_once 'bootstrap/pre-get-posts.php';
require_once 'bootstrap/filters.php';
// Disable Gutenberg on the back end.
add_filter( 'use_block_editor_for_post', '__return_false', 10 );
// Disable Gutenberg for widgets.
add_filter( 'use_widgets_block_editor', '__return_false' );
add_action( 'wp_enqueue_scripts', function() {
// Remove CSS on the front end.
wp_dequeue_style( 'wp-block-library' );
// Remove Gutenberg theme.
wp_dequeue_style( 'wp-block-library-theme' );
// Remove inline global CSS on the front end.
wp_dequeue_style( 'global-styles' );
}, 20 );
/*
* creates a function to simplify the use of the corresponding WPUtil
*/
function the_svg($filename, bool $no_use = false) {
$options = ['no_use' => $no_use ];
WPUtil\SVG::the_svg($filename, $options);
}
function the_button_formatter($button, $params = []) {
if (!isset($button['url']) || !isset($button['title'])) {
return;
};
$all_params = array_map(function($a, $key) {
return $key.'="'.$a.'"';
}, $params, array_keys($params));
echo '<a '.implode(" " ,$all_params).' href="'.esc_url($button['url']).'" target="'.$button['target'].'">'.$button['title'].'</a>';
}
// add support for page excerpts
add_post_type_support( 'page', 'excerpt' );
add_filter( 'excerpt_length', fn() => 15, 999 );
add_filter('excerpt_more', fn() => '…');