/
layouts.php
77 lines (64 loc) · 2.3 KB
/
layouts.php
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
<?php
/**
* Layouts
*
* @package EAGenesisChild
* @author Bill Erickson
* @since 1.0.0
* @license GPL-2.0+
**/
// Unregister genesis layouts
genesis_unregister_layout( 'content-sidebar-sidebar' );
genesis_unregister_layout( 'sidebar-content-sidebar' );
genesis_unregister_layout( 'sidebar-sidebar-content' );
genesis_unregister_layout( 'sidebar-content' );
//genesis_unregister_layout( 'content-sidebar' );
// Add new layouts
genesis_register_layout( 'content', [ 'label' => __( 'Content', 'ea_genesis_child' ), ] );
// Remove layout metabox
//remove_theme_support( 'genesis-inpost-layouts' );
remove_theme_support( 'genesis-archive-layouts' );
// Don't load default data into empty sidebar
remove_action( 'genesis_sidebar', 'genesis_do_sidebar' );
add_action( 'genesis_sidebar', function() { dynamic_sidebar( 'sidebar' ); } );
// Add New Sidebars
// genesis_register_widget_area( array( 'id' => 'blog-sidebar', 'name' => 'Blog Sidebar' ) );
// Remove sidebar for content layout
add_action( 'genesis_meta', function() {
$layout = genesis_site_layout();
if( 'content' === $layout ) {
remove_action( 'genesis_after_content', 'genesis_get_sidebar' );
remove_action( 'genesis_after_content_sidebar_wrap', 'genesis_get_sidebar_alt' );
}
});
/**
* Editor layout style
*
*/
function ea_editor_layout_style() {
wp_enqueue_style( 'ea-editor-layout', get_stylesheet_directory_uri() . '/assets/css/editor-layout.css', [], filemtime( get_stylesheet_directory() . '/assets/css/editor-layout.css' ) );
}
add_action( 'enqueue_block_editor_assets', 'ea_editor_layout_style' );
/**
* Editor layout class
* @link https://www.billerickson.net/change-gutenberg-content-width-to-match-layout/
*
* @param string $classes
* @return string
*/
function ea_editor_layout_class( $classes ) {
$screen = get_current_screen();
if( ! $screen->is_block_editor() )
return $classes;
$layout = false;
$post_id = isset( $_GET['post'] ) ? intval( $_GET['post'] ) : false;
// Get post-specific layout
if( $post_id )
$layout = genesis_get_custom_field( '_genesis_layout', $post_id );
// If no post-specific layout, use site-wide default
elseif( empty( $layout ) )
$layout = genesis_get_option( 'site_layout' );
$classes .= ' ' . $layout . ' ';
return $classes;
}
add_filter( 'admin_body_class', 'ea_editor_layout_class' );