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:
Ben Word
2012-11-01 18:23:49 -05:00
parent b843a0fee8
commit 26deb029ee
2 changed files with 18 additions and 20 deletions

View File

@@ -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

View File

@@ -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 /&#37;postname&#37;/', 'roots')); ?></small> <small class="description"><?php printf(__('Change permalink structure to /&#37;postname&#37;/', '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');