OwlCyberSecurity - MANAGER
Edit File: class-redux-shortcodes.php
<?php /** * Redux Shortcodes Class * * @package Redux * @author Dovy Paukstys (dovy) & Kevin Provance <kevin.provance@gmail.com> * @class Redux_Extension_Shortcodes */ defined( 'ABSPATH' ) || exit; if ( ! class_exists( 'Redux_Shortcodes' ) ) { /** * Redux Framework shortcode extension class. Takes the common WordPress functions `wp_get_theme()` and `bloginfo()` and a few other functions and makes them accessible via shortcodes. Below you will find a table for the possible shortcodes and their values. * | shortcode | Function | Description | * |-----------|----------|-------------| * | blog-name | bloginfo("name") | Displays the "Site Title" set in Settings > General. This data is retrieved from the "blogname" record in the wp_options table. | * | blog-description | bloginfo("description") | Displays the "Tagline" set in Settings > General. This data is retrieved from the "blogdescription" record in the wp_options table.| * | blog-wpurl | bloginfo("wpurl") | Displays the "WordPress address (URL)" set in Settings > General. This data is retrieved from the "siteurl" record in the wp_options table. Consider using **blog-root_url** instead, especially for multi-site configurations using paths instead of subdomains (it will return the root site not the current sub-site). | * | blog-root_url | site_url() | Return the root site, not the current sub-site. | * | blog-url | home_url() | Displays the "Site address (URL)" set in Settings > General. This data is retrieved from the "home" record in the wp_options table. | * | blog-admin_email | bloginfo("admin_email") | Displays the "E-mail address" set in Settings > General. This data is retrieved from the "admin_email" record in the wp_options table.| * | blog-charset | bloginfo("charset") | Displays the "Encoding for pages and feeds" set in Settings > Reading. This data is retrieved from the "blog_charset" record in the wp_options table. Note: In Version 3.5.0 and later, character encoding is no longer configurable from the Administration Panel. Therefore, this parameter always echoes "UTF-8", which is the default encoding of WordPress.| * | blog-version | bloginfo("version") | Displays the WordPress Version you use. This data is retrieved from the $wp_version variable set in wp-includes/version.php.| * | blog-html_type | bloginfo("html_type") | Displays the Content-Type of WordPress HTML pages (default: "text/html"). This data is retrieved from the "html_type" record in the wp_options table. Themes and plugins can override the default value using the pre_option_html_type filter.| * | blog-text_direction | bloginfo("text_direction") | Displays the Text Direction of WordPress HTML pages. Consider using **blog-text_direction_boolean** instead if you want a true/false response. | * | blog-text_direction_boolean | is_rtl() | Displays true/false check if the Text Direction of WordPress HTML pages is left instead of right | * | blog-language | bloginfo("language") | Displays the language of WordPress.| * | blog-stylesheet_url | get_stylesheet_uri() | Displays the primary CSS (usually style.css) file URL of the active theme. | * | blog-stylesheet_directory | bloginfo("stylesheet_directory") | Displays the stylesheet directory URL of the active theme. (Was a local path in earlier WordPress versions.) Consider echoing get_stylesheet_directory_uri() instead.| * | blog-template_url | get_template_directory_uri() | Parent template uri. Consider using **blog-child_template_url** for the child template URI. | * | blog-child_template_url | get_stylesheet_directory_uri() | Child template URI. | * | blog-pingback_url | bloginfo("pingback_url") | Displays the Pingback XML-RPC file URL (xmlrpc.php).| * | blog-atom_url | bloginfo("atom_url") | Displays the Atom feed URL (/feed/atom).| * | blog-rdf_url | bloginfo("rdf_url") | Displays the RDF/RSS 1.0 feed URL (/feed/rfd).| * | blog-rss_url | bloginfo("rss_url") | Displays the RSS 0.92 feed URL (/feed/rss).| * | blog-rss2_url | bloginfo("rss2_url") | Displays the RSS 2.0 feed URL (/feed).| * | blog-comments_atom_url | bloginfo("comments_atom_url") | Displays the comments Atom feed URL (/comments/feed).| * | blog-comments_rss2_url | bloginfo("comments_rss2_url") | Displays the comments RSS 2.0 feed URL (/comments/feed).| * | login-url | wp_login_url() | Returns the WordPress login URL. | * | login-url | wp_logout_url() | Returns the WordPress logout URL. | * | current_year | date("Y") | Returns the current year. | * | theme-name | $theme_info->get("Name") | Theme name as given in theme's style.css | * | theme-uri | $theme_info->get("ThemeURI") | The path to the theme's directory | * | theme-description | $theme_info->get("Description") | The description of the theme | * | theme-author | $theme_info->get("Author") | The theme's author | * | theme-author_uri | $theme_info->get("AuthorURI") | The website of the theme author | * | theme-version | $theme_info->get("Version") | The version of the theme | * | theme-template | $theme_info->get("Template") | The folder name of the current theme | * | theme-status | $theme_info->get("Status") | If the theme is published | * | theme-tags | $theme_info->get("Tags") | Tags used to describe the theme | * | theme-text_domain | $theme_info->get("TextDomain") | The text domain used in the theme for translation purposes | * | theme-domain_path | $theme_info->get("DomainPath") | Path to the theme translation files | * * @version 1.0.0 */ /** * Class Redux_Shortcodes */ class Redux_Shortcodes { /** * Redux_Shortcodes constructor. */ public function __construct() { if ( ! shortcode_exists( 'bloginfo' ) ) { add_shortcode( 'bloginfo', array( $this, 'blog_info' ) ); } else { add_shortcode( 'redux_bloginfo', array( $this, 'blog_info' ) ); } if ( ! shortcode_exists( 'themeinfo' ) ) { add_shortcode( 'themeinfo', array( $this, 'theme_info' ) ); } else { add_shortcode( 'redux_themeinfo', array( $this, 'theme_info' ) ); } if ( ! shortcode_exists( 'date' ) ) { add_shortcode( 'date', array( $this, 'date' ) ); } else { add_shortcode( 'redux_date', array( $this, 'date' ) ); } } /** * Get shortcode data. * * @param array|string $atts Attributes. * @param string|null $content Content. * * @return bool|string|null */ public function blog_info( $atts = array(), string $content = null ) { if ( ! is_array( $atts ) ) { $atts = array(); } if ( ! empty( $content ) && ! isset( $atts['data'] ) ) { $atts['data'] = $content; } switch ( $atts['data'] ) { case 'stylesheet_directory': case 'child_template_directory': return get_stylesheet_directory(); case 'parent_template_url': return get_template_directory_uri(); case 'child_template_url': case 'template_url': return get_stylesheet_directory_uri(); case 'template_directory': return get_template_directory(); case 'text_direction': case 'text_direction_bool': case 'text_direction_boolean': return is_rtl(); case 'is_multisite': return is_multisite(); case 'url': return esc_url( home_url() ); case 'root_url': return esc_url( site_url() ); case 'stylesheet_url': return esc_url( get_stylesheet_uri() ); case 'logout_url': return esc_url( wp_logout_url() ); case 'login_url': return esc_url( wp_login_url() ); case 'register_url': return esc_url( wp_registration_url() ); case 'lostpassword_url': case 'lost_password_url': return esc_url( wp_lostpassword_url() ); default: return get_bloginfo( $atts['data'] ); } } /** * Get theme info. * * @param array|string $atts Attributes. * @param string|null $content Content. * * @return array|bool|string */ public function theme_info( array $atts = array(), string $content = null ) { if ( ! is_array( $atts ) ) { $atts = array(); } if ( ! empty( $content ) && ! isset( $atts['data'] ) ) { $atts['data'] = $content; } if ( empty( $this->theme_info ) ) { $this->theme_info = wp_get_theme(); } $keys = array( 'name' => 'Name', 'themeuri' => 'ThemeURI', 'theme_uri' => 'ThemeURI', 'description' => 'Description', 'author' => 'Author', 'authoruri' => 'AuthorURI', 'author_uri' => 'AuthorURI', 'version' => 'Version', 'template' => 'Template', 'status' => 'Status', 'tags' => 'Tags', 'textdomain' => 'TextDomain', 'text_domain' => 'TextDomain', 'domainpath' => 'DomainPath', 'domain_path' => 'DomainPath', 'is_child' => 'is_child', ); $atts['data'] = $keys[ strtolower( $atts['data'] ) ]; switch ( $atts['data'] ) { case 'is_child': return Redux_Helpers::is_child_theme( get_template_directory() ); default: $return = $this->theme_info->get( $atts['data'] ); if ( is_array( $return ) ) { $return = implode( ', ', $return ); } return $return; } } /** * Get date info. * * @param array|string $atts Attributes. * @param string|null $content Content. * * @return false|string */ public function date( $atts = array(), string $content = null ) { if ( ! is_array( $atts ) ) { $atts = array(); } if ( ! empty( $content ) && ! isset( $atts['data'] ) ) { $atts['data'] = $content; } if ( empty( $atts['data'] ) ) { $atts['data'] = 'Y'; } return gmdate( $atts['data'] ); } } }