File "functions.php"
Full Path: /home/ycoalition/public_html/blog/wp-content/themes/hideo/functions.php
File size: 7.37 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/* -----------------------------------------------------------------------------------------------
THEME SUPPORTS
--------------------------------------------------------------------------------------------------- */
function hideo_setup() {
add_editor_style( array( trailingslashit( get_template_directory_uri() ) . 'assets/css/editor-style.css', 'style.css' ) );
}
add_action( 'after_setup_theme', 'hideo_setup' );
/* -----------------------------------------------------------------------------------------------
ENQUEUE STYLESHEETS
--------------------------------------------------------------------------------------------------- */
function hideo_styles() {
wp_enqueue_style( 'hideo-styles', get_theme_file_uri( '/style.css' ), array(), wp_get_theme( 'hideo' )->get( 'Version' ) );
}
add_action( 'wp_enqueue_scripts', 'hideo_styles' );
/* -----------------------------------------------------------------------------------------------
REGISTER BLOCK STYLES
--------------------------------------------------------------------------------------------------- */
if ( ! function_exists( 'hideo_block_styles' ) ) :
function hideo_block_styles() {
/* REGISTER STYLES FOR BLOCKS */
$core_block_styles = apply_filters( 'hideo_wp_enqueue_block_style_blocks', array(
'categories',
'comments',
'gallery',
'navigation',
'post-comments-form',
'post-navigation-link',
'pullquote',
'search'
) );
foreach( $core_block_styles as $block_name ) {
wp_enqueue_block_style(
'core/' . $block_name,
array(
'handle' => 'hideo-' . $block_name . '-style',
'src' => get_theme_file_uri( 'assets/css/' . $block_name . '.css' ),
'ver' => wp_get_theme( 'hideo' )->get( 'Version' ),
'path' => get_theme_file_path( 'assets/css/' . $block_name . '.css' ),
)
);
}
/* REGISTER BLOCK STYLES */
$desatured_style_blocks = array(
'core/avatar',
'core/image',
'core/post-featured-image'
);
foreach ( $desatured_style_blocks as $block_name ) {
register_block_style(
$block_name,
array(
'name' => 'desaturated',
'label' => __( 'Desaturated', 'hideo' ),
'inline_style' => ".is-style-desaturated { mix-blend-mode: luminosity; }",
)
);
}
register_block_style(
'core/column',
array(
'name' => 'aspect-ratio-1-1',
'label' => __( '1:1 Aspect Ratio', 'hideo' ),
'inline_style' => ".is-style-aspect-ratio-1-1 { aspect-ratio: 1/1; }",
)
);
register_block_style(
'core/column',
array(
'name' => 'aspect-ratio-4-3',
'label' => __( '4:3 Aspect Ratio', 'hideo' ),
'inline_style' => ".is-style-aspect-ratio-4-3 { aspect-ratio: 4/3; }",
)
);
register_block_style(
'core/post-terms',
array(
'name' => 'pill-shape-with-border',
'label' => __( 'Pill Shape With Border', 'hideo' ),
'inline_style' => "
.wp-block-post-terms.is-style-pill-shape-with-border {
display: flex;
flex-wrap: wrap;
gap: .75em;
}
.wp-block-post-terms.is-style-pill-shape-with-border a {
border: 1px solid var( --wp--preset--color--30 ) !important;
border-radius: 999px;
padding: .44em 1em;
}
.is-style-pill-shape-with-border .wp-block-post-terms__separator {
display: none;
}",
)
);
register_block_style(
'core/post-date',
array(
'name' => 'pill-shape',
'label' => __( 'Pill Shape', 'hideo' ),
'inline_style' => "
.wp-block-post-date.is-style-pill-shape {
border-radius: 99px;
}",
)
);
register_block_style(
'core/query-pagination',
array(
'name' => 'hideo-pagination',
'label' => __( 'Hideo Pagination', 'hideo' ),
'inline_style' => "
:root .is-style-hideo-pagination > *,
.is-style-hideo-pagination [class*=\"is-arrow-\"]:only-child {
margin: 0;
}
.wp-block-query-pagination,
.is-style-hideo-pagination .wp-block-query-pagination-numbers {
display: flex;
flex-wrap: wrap;
gap: .66em;
}
.is-style-hideo-pagination > a,
.is-style-hideo-pagination .wp-block-query-pagination-numbers > * {
align-items: center;
border: 1px solid var( --wp--preset--color--30 );
border-radius: 50%;
display: flex;
height: 2em;
justify-content: center;
margin: 0;
width: 2em;
}
.is-style-hideo-pagination a:hover,
.is-style-hideo-pagination .wp-block-query-pagination-numbers .current {
background: var( --wp--preset--color--30 );
}",
)
);
register_block_style(
'core/quote',
array(
'name' => 'has-quotation-mark',
'label' => __( 'Quotation Mark', 'hideo' ),
'inline_style' => "",
)
);
register_block_style(
'core/social-links',
array(
'name' => 'pill-shape-with-border',
'label' => __( 'Default With Border', 'hideo' ),
'inline_style' => "
:root .is-style-pill-shape-with-border .wp-block-social-link-anchor {
border: 1px solid var( --wp--preset--color--30 ) !important;
border-radius: 999px;
padding: .33em;
}",
)
);
}
endif;
add_action( 'init', 'hideo_block_styles' );
/* -----------------------------------------------------------------------------------------------
BLOCK PATTERNS
Register theme specific block pattern categories. The patterns themselves are stored in /patterns/.
--------------------------------------------------------------------------------------------------- */
if ( ! function_exists( 'hideo_register_block_patterns' ) ) :
function hideo_register_block_patterns() {
// The block pattern categories included in Hideo.
$hideo_block_pattern_categories = apply_filters( 'hideo_block_pattern_categories', array(
'hideo' => array(
'label' => esc_html__( 'Hideo - All', 'hideo' ),
),
'hideo-cta' => array(
'label' => esc_html__( 'Hideo - Call to Action', 'hideo' ),
),
'hideo-general' => array(
'label' => esc_html__( 'Hideo - General', 'hideo' ),
),
'hideo-hero' => array(
'label' => esc_html__( 'Hideo - Hero', 'hideo' ),
),
'hideo-media' => array(
'label' => esc_html__( 'Hideo - Media', 'hideo' ),
),
) );
// Sort the block pattern categories alphabetically based on the label value, to ensure alphabetized order when the strings are localized.
uasort( $hideo_block_pattern_categories, function( $a, $b ) {
return strcmp( $a["label"], $b["label"] ); }
);
// Register block pattern categories.
foreach ( $hideo_block_pattern_categories as $slug => $settings ) {
register_block_pattern_category( $slug, $settings );
}
}
endif;
add_action( 'init', 'hideo_register_block_patterns' );
/* -----------------------------------------------------------------------------------------------
MODIFY wp_list_categories() MARKUP
In the output, wrap the category count in a span element so it can be styled separately.
--------------------------------------------------------------------------------------------------- */
if ( ! function_exists( 'hideo_modify_wp_list_categories_markup' ) ) :
function hideo_modify_wp_list_categories_markup( $output, $args ) {
if ( $args['show_count'] === true ) {
$output = str_replace(
array( '</a> (', ')' ),
array( '</a><span class="count">', '</span>' ),
$output
);
}
return $output;
}
endif;
add_filter( 'wp_list_categories', 'hideo_modify_wp_list_categories_markup', 10, 2 );