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');
if (!isset($this->options['canonical_method'])) {
$defaults = array(
'canonical_method' => $canonical_method
);
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');
$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 = '';
$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();