Remove ConditonalTagCheck class
This commit is contained in:
@@ -1,43 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Roots\Sage;
|
||||
|
||||
/**
|
||||
* Utility class which takes an array of conditional tags (or any function which returns a boolean)
|
||||
* and returns `false` if *any* of them are `true`, and `true` otherwise.
|
||||
*
|
||||
* @param array list of conditional tags (http://codex.wordpress.org/Conditional_Tags)
|
||||
* or custom function which returns a boolean
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
class ConditionalTagCheck {
|
||||
private $conditionals;
|
||||
|
||||
public $result = true;
|
||||
|
||||
public function __construct($conditionals = []) {
|
||||
$this->conditionals = $conditionals;
|
||||
|
||||
$conditionals = array_map([$this, 'checkConditionalTag'], $this->conditionals);
|
||||
|
||||
if (in_array(true, $conditionals)) {
|
||||
$this->result = false;
|
||||
}
|
||||
}
|
||||
|
||||
private function checkConditionalTag($conditional) {
|
||||
if (is_array($conditional)) {
|
||||
list($tag, $args) = $conditional;
|
||||
} else {
|
||||
$tag = $conditional;
|
||||
$args = false;
|
||||
}
|
||||
|
||||
if (function_exists($tag)) {
|
||||
return $args ? $tag($args) : $tag();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -28,38 +28,18 @@ if (!defined('DIST_DIR')) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Define which pages shouldn't have the sidebar
|
||||
* Determine which pages should NOT display the sidebar
|
||||
*/
|
||||
function display_sidebar() {
|
||||
static $display;
|
||||
|
||||
if (!isset($display)) {
|
||||
$conditionalCheck = new ConditionalTagCheck(
|
||||
/**
|
||||
* Any of these conditional tags that return true won't show the sidebar.
|
||||
* You can also specify your own custom function as long as it returns a boolean.
|
||||
*
|
||||
* To use a function that accepts arguments, use an array instead of just the function name as a string.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* 'is_single'
|
||||
* 'is_archive'
|
||||
* ['is_page', 'about-me']
|
||||
* ['is_tax', ['flavor', 'mild']]
|
||||
* ['is_page_template', 'about.php']
|
||||
* ['is_post_type_archive', ['foo', 'bar', 'baz']]
|
||||
*
|
||||
*/
|
||||
[
|
||||
'is_404',
|
||||
'is_front_page',
|
||||
['is_page_template', 'template-custom.php']
|
||||
]
|
||||
);
|
||||
isset($display) || $display = !in_array(true, [
|
||||
// The sidebar will NOT be displayed if ANY of the following return true.
|
||||
// @link https://codex.wordpress.org/Conditional_Tags
|
||||
is_404(),
|
||||
is_front_page(),
|
||||
is_page_template('template-custom.php'),
|
||||
]);
|
||||
|
||||
$display = apply_filters('sage/display_sidebar', $conditionalCheck->result);
|
||||
}
|
||||
|
||||
return $display;
|
||||
return apply_filters('sage/display_sidebar', $display);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user