acu_init(); } /** * Initialization */ public function acu_init() { register_activation_hook(__FILE__, array($this, 'acu_activation')); register_deactivation_hook(__FILE__, array($this, 'acu_deactivation')); if (is_admin()) { add_action('admin_menu', array($this, 'acu_plugin_page')); add_action('admin_init', array($this, 'acu_settings_page_init')); } remove_action('wp_head', 'rel_canonical'); add_action('wp_head', array($this, 'acu_the_real_deal')); } /** * Plugin Activation */ public function acu_activation() { $this->options = get_option('acu_options'); $canonical_method = ($this->options['canonical_method'] ? $this->options['canonical_method'] : 'basic'); $query_strings = ($this->options['query_strings'] ? $this->options['query_strings'] : 'yes'); if (!isset($this->options['canonical_method'], $this->options['query_strings'])) { $defaults = array( 'canonical_method' => $canonical_method, 'query_strings' => $query_strings ); update_option('acu_options', $defaults); } } /** * Plugin Deactivation */ public function acu_deactivation() { delete_option('acu_options'); } /** * Plugin Page */ public function acu_plugin_page() { add_options_page( 'Advance Canonical Settings', 'Advance Canonical Settings', 'manage_options', 'advance_canonical_settings', array($this, 'acu_settings_form') ); } /** * Settings Form */ public function acu_settings_form() { ?>

options = get_option('acu_options'); ?>

options = get_option('acu_options'); ?>

options = get_option('acu_options'); $acu_can_url_value = get_post_meta(get_the_ID(), '_acu_can_url_value', true); $value = esc_url($acu_can_url_value); /** * Basic Canonical URL */ $basic = ''; if ('no' === $this->options['query_strings']) { $basic .= ''; } else { $basic .= ''; } $basic .= ''; /** * Advance Canonical URL based on the Canonical Meta Box Option */ $advance = ''; $advance .= ''; $advance .= ''; switch (true) { case (is_front_page()): echo $basic; break; case (is_home()): echo $basic; break; case (is_single()): $this->acu_render_canonical_url($basic, $advance, $value); break; case (is_page()): $this->acu_render_canonical_url($basic, $advance, $value); break; default: $this->acu_render_canonical_url($basic, $advance, $value); } } /** * Rendering the Canonical URL on frontend based on the basic and advance settings * @param $basic * @param $advance * @param $value */ public function acu_render_canonical_url($basic, $advance, $value) { if ('basic' === $this->options['canonical_method']) { echo $basic; } else { echo (!empty($value)) ? $advance : $basic; } } } } $ACU = new advance_canonical_url();