Fix #580 - Menu always gets added & set on activation
Also updated the method of setting the permalink structure on activation.
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
### HEAD
|
### HEAD
|
||||||
|
* Make sure Primary Navigation menu always gets created and has the location set upon activation, update activation permalink method
|
||||||
* Update to Bootstrap 2.2.1
|
* Update to Bootstrap 2.2.1
|
||||||
* Update conditional feed method
|
* Update conditional feed method
|
||||||
* Update to Bootstrap 2.2.0
|
* Update to Bootstrap 2.2.0
|
||||||
|
|||||||
@@ -16,13 +16,11 @@ function roots_theme_activation_options_init() {
|
|||||||
'roots_theme_activation_options_validate'
|
'roots_theme_activation_options_validate'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action('admin_init', 'roots_theme_activation_options_init');
|
add_action('admin_init', 'roots_theme_activation_options_init');
|
||||||
|
|
||||||
function roots_activation_options_page_capability($capability) {
|
function roots_activation_options_page_capability($capability) {
|
||||||
return 'edit_theme_options';
|
return 'edit_theme_options';
|
||||||
}
|
}
|
||||||
|
|
||||||
add_filter('option_page_capability_roots_activation_options', 'roots_activation_options_page_capability');
|
add_filter('option_page_capability_roots_activation_options', 'roots_activation_options_page_capability');
|
||||||
|
|
||||||
function roots_theme_activation_options_add_page() {
|
function roots_theme_activation_options_add_page() {
|
||||||
@@ -43,9 +41,7 @@ function roots_theme_activation_options_add_page() {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action('admin_menu', 'roots_theme_activation_options_add_page', 50);
|
add_action('admin_menu', 'roots_theme_activation_options_add_page', 50);
|
||||||
|
|
||||||
function roots_get_default_theme_activation_options() {
|
function roots_get_default_theme_activation_options() {
|
||||||
@@ -66,10 +62,9 @@ function roots_get_theme_activation_options() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function roots_theme_activation_options_render_page() { ?>
|
function roots_theme_activation_options_render_page() { ?>
|
||||||
|
|
||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<?php screen_icon(); ?>
|
<?php screen_icon(); ?>
|
||||||
<h2><?php printf(__('%s Theme Activation', 'roots'), wp_get_theme() ); ?></h2>
|
<h2><?php printf(__('%s Theme Activation', 'roots'), wp_get_theme()); ?></h2>
|
||||||
<?php settings_errors(); ?>
|
<?php settings_errors(); ?>
|
||||||
|
|
||||||
<form method="post" action="options.php">
|
<form method="post" action="options.php">
|
||||||
@@ -80,7 +75,7 @@ function roots_theme_activation_options_render_page() { ?>
|
|||||||
$roots_default_activation_options = roots_get_default_theme_activation_options();
|
$roots_default_activation_options = roots_get_default_theme_activation_options();
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<input type="hidden" value="1" name="roots_theme_activation_options[first_run]" />
|
<input type="hidden" value="1" name="roots_theme_activation_options[first_run]">
|
||||||
|
|
||||||
<table class="form-table">
|
<table class="form-table">
|
||||||
|
|
||||||
@@ -91,7 +86,7 @@ function roots_theme_activation_options_render_page() { ?>
|
|||||||
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
||||||
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
<br />
|
<br>
|
||||||
<small class="description"><?php printf(__('Create a page called Home and set it to be the static front page', 'roots')); ?></small>
|
<small class="description"><?php printf(__('Create a page called Home and set it to be the static front page', 'roots')); ?></small>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
@@ -104,7 +99,7 @@ function roots_theme_activation_options_render_page() { ?>
|
|||||||
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
||||||
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
<br />
|
<br>
|
||||||
<small class="description"><?php printf(__('Change permalink structure to /%postname%/', 'roots')); ?></small>
|
<small class="description"><?php printf(__('Change permalink structure to /%postname%/', 'roots')); ?></small>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
@@ -117,7 +112,7 @@ function roots_theme_activation_options_render_page() { ?>
|
|||||||
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
||||||
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
<br />
|
<br>
|
||||||
<small class="description"><?php printf(__('Change uploads folder to /assets/ instead of /wp-content/uploads/', 'roots')); ?></small>
|
<small class="description"><?php printf(__('Change uploads folder to /assets/ instead of /wp-content/uploads/', 'roots')); ?></small>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
@@ -130,7 +125,7 @@ function roots_theme_activation_options_render_page() { ?>
|
|||||||
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
||||||
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
<br />
|
<br>
|
||||||
<small class="description"><?php printf(__('Create the Primary Navigation menu and set the location', 'roots')); ?></small>
|
<small class="description"><?php printf(__('Create the Primary Navigation menu and set the location', 'roots')); ?></small>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
@@ -143,7 +138,7 @@ function roots_theme_activation_options_render_page() { ?>
|
|||||||
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
<option selected="selected" value="yes"><?php echo _e('Yes', 'roots'); ?></option>
|
||||||
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
<option value="no"><?php echo _e('No', 'roots'); ?></option>
|
||||||
</select>
|
</select>
|
||||||
<br />
|
<br>
|
||||||
<small class="description"><?php printf(__('Add all current published pages to the Primary Navigation', 'roots')); ?></small>
|
<small class="description"><?php printf(__('Add all current published pages to the Primary Navigation', 'roots')); ?></small>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</td>
|
</td>
|
||||||
@@ -260,12 +255,12 @@ function roots_theme_activation_action() {
|
|||||||
|
|
||||||
if ($roots_theme_activation_options['change_permalink_structure']) {
|
if ($roots_theme_activation_options['change_permalink_structure']) {
|
||||||
$roots_theme_activation_options['change_permalink_structure'] = false;
|
$roots_theme_activation_options['change_permalink_structure'] = false;
|
||||||
|
global $wp_rewrite;
|
||||||
|
|
||||||
if (get_option('permalink_structure') !== '/%postname%/') {
|
if (get_option('permalink_structure') !== '/%postname%/') {
|
||||||
update_option('permalink_structure', '/%postname%/');
|
$wp_rewrite->set_permalink_structure('/%postname%/');
|
||||||
}
|
}
|
||||||
|
|
||||||
global $wp_rewrite;
|
|
||||||
$wp_rewrite->init();
|
$wp_rewrite->init();
|
||||||
$wp_rewrite->flush_rules();
|
$wp_rewrite->flush_rules();
|
||||||
}
|
}
|
||||||
@@ -282,9 +277,13 @@ function roots_theme_activation_action() {
|
|||||||
|
|
||||||
$roots_nav_theme_mod = false;
|
$roots_nav_theme_mod = false;
|
||||||
|
|
||||||
if (!has_nav_menu('primary_navigation')) {
|
$existing_nav = wp_get_nav_menu_object('Primary Navigation');
|
||||||
|
if (!$existing_nav) {
|
||||||
$primary_nav_id = wp_create_nav_menu('Primary Navigation', array('slug' => 'primary_navigation'));
|
$primary_nav_id = wp_create_nav_menu('Primary Navigation', array('slug' => 'primary_navigation'));
|
||||||
$roots_nav_theme_mod['primary_navigation'] = $primary_nav_id;
|
$roots_nav_theme_mod['primary_navigation'] = $primary_nav_id;
|
||||||
|
} else {
|
||||||
|
$primary_nav = wp_get_nav_menu_object('Primary Navigation');
|
||||||
|
$roots_nav_theme_mod['primary_navigation'] = $primary_nav->term_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($roots_nav_theme_mod) {
|
if ($roots_nav_theme_mod) {
|
||||||
@@ -314,11 +313,9 @@ function roots_theme_activation_action() {
|
|||||||
|
|
||||||
update_option('roots_theme_activation_options', $roots_theme_activation_options);
|
update_option('roots_theme_activation_options', $roots_theme_activation_options);
|
||||||
}
|
}
|
||||||
|
|
||||||
add_action('admin_init','roots_theme_activation_action');
|
add_action('admin_init','roots_theme_activation_action');
|
||||||
|
|
||||||
function roots_deactivation_action() {
|
function roots_deactivation() {
|
||||||
update_option('roots_theme_activation_options', roots_get_default_theme_activation_options());
|
delete_option('roots_theme_activation_options');
|
||||||
}
|
}
|
||||||
|
add_action('switch_theme', 'roots_deactivation');
|
||||||
add_action('switch_theme', 'roots_deactivation_action');
|
|
||||||
|
|||||||
Reference in New Issue
Block a user