geno/wp-content/themes/astra/inc/metabox/class-astra-meta-box-operations.php
2024-02-01 11:54:18 +00:00

115 lines
2.2 KiB
PHP

<?php
/**
* Astra Meta Box Operations
*
* @package Astra
* @author Astra
* @copyright Copyright (c) 2020, Astra
* @link https://wpastra.com/
* @since Astra 1.0.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Meta Box
*/
if ( ! class_exists( 'Astra_Meta_Box_Operations' ) ) {
/**
* Meta Box
*/
class Astra_Meta_Box_Operations {
/**
* Instance
*
* @var $instance
*/
private static $instance;
/**
* Initiator
*/
public static function get_instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor
*/
public function __construct() {
add_action( 'wp', array( $this, 'meta_hooks' ) );
}
/**
* Metabox Hooks
*/
public function meta_hooks() {
if ( is_singular() ) {
add_action( 'wp_head', array( $this, 'primary_header' ) );
add_filter( 'astra_the_title_enabled', array( $this, 'post_title' ) );
add_filter( 'body_class', array( $this, 'body_class' ) );
}
}
/**
* Primary Header
*/
public function primary_header() {
$display_header = get_post_meta( get_the_ID(), 'ast-main-header-display', true );
$display_header = apply_filters( 'astra_main_header_display', $display_header );
if ( 'disabled' == $display_header ) {
remove_action( 'astra_masthead', 'astra_masthead_primary_template' );
}
}
/**
* Disable Post / Page Title
*
* @param boolean $defaults Show default post title.
* @return boolean Status of default post title.
*/
public function post_title( $defaults ) {
$title = get_post_meta( get_the_ID(), 'site-post-title', true );
if ( 'disabled' == $title ) {
$defaults = false;
}
return $defaults;
}
/**
* Add Body Classes
*
* @param array $classes Body Classes Array.
* @return array
*/
public function body_class( $classes ) {
$title = get_post_meta( get_the_ID(), 'site-post-title', true );
if ( 'disabled' != $title ) {
$classes[] = 'ast-normal-title-enabled';
}
return $classes;
}
}
}
/**
* Kicking this off by calling 'get_instance()' method
*/
Astra_Meta_Box_Operations::get_instance();