Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2012
427
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.57 KB | None | 0 0
  1. <?php
  2. /*
  3. Plugin Name: Switch Theme
  4. Plugin URI:
  5. Description:
  6. Version:
  7. Author:
  8. Author URI:
  9. License:
  10. */
  11.  
  12. if (is_admin()) :
  13.  
  14.     /* load plugin functions */
  15.     add_action('add_meta_boxes', 'myplugin_add_meta_box');
  16.     add_action('save_post', 'myplugin_save_meta_box');
  17.    
  18.     /* add meta box to page editing */
  19.     function myplugin_add_meta_box() {
  20.    
  21.         add_meta_box('', 'Page Theme', 'myplugin_get_meta_box_contents', 'page', 'side', 'default', '');
  22.        
  23.     }
  24.    
  25.     /* meta box contents */
  26.     function myplugin_get_meta_box_contents($post) {
  27.    
  28.         $themes = get_themes();
  29.         $page_theme = get_post_meta($post->ID, 'page_theme', true);
  30.        
  31.         echo '<p><label for=page_theme><b>Themes:</b></label></p>';
  32.         echo '<select name=page_theme>';
  33.         echo '<option>(ohne)</option>';
  34.        
  35.         foreach($themes as $key => $theme) :
  36.        
  37.             $selected = ($themes[$key]["Template"] == $page_theme) ? 'selected' : '';
  38.             echo '<option value="' . $themes[$key]['Template']. '"'. $selected .'>' . $themes[ $key ]['Name'] . ' </option>';
  39.            
  40.         endforeach;
  41.        
  42.         echo '</select>';
  43.        
  44.     }
  45.    
  46.      /* save theme options */
  47.     function myplugin_save_meta_box($post_id) {
  48.    
  49.         update_post_meta($post_id, 'page_theme', $_POST['page_theme']);
  50.        
  51.     }
  52.    
  53. endif;
  54.  
  55. /* load page theme */
  56. add_filter('option_template', 'my_plugin_get_page_theme');
  57. add_filter('template', 'my_plugin_get_page_theme');
  58. add_filter('option_stylesheet', 'my_plugin_get_page_theme');
  59.  
  60. function my_plugin_get_page_theme() {
  61.  
  62.     $page_id = get_the_ID();
  63.     $page_theme = get_post_meta(get_the_ID(), 'page_theme', true);
  64.     return $page_theme;
  65.    
  66. }
  67.  
  68. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement