Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




wp_dashboard_setup [ WordPress Function ]

wp_dashboard_setup ( No parameters )
Defined at:



Registers dashboard widgets.

Handles POST data, sets up filters.

Source


<?php
function wp_dashboard_setup() {
    global 
$wp_registered_widgets$wp_registered_widget_controls$wp_dashboard_control_callbacks;
    
$wp_dashboard_control_callbacks = array();
    
$screen get_current_screen();

    
$update false;
    
$widget_options get_option'dashboard_widget_options' );
    if ( !
$widget_options || !is_array($widget_options) )
        
$widget_options = array();

    
/* Register Widgets and Controls */

    
$response wp_check_browser_version();

    if ( 
$response && $response['upgrade'] ) {
        
add_filter'postbox_classes_dashboard_dashboard_browser_nag''dashboard_browser_nag_class' );
        if ( 
$response['insecure'] )
            
wp_add_dashboard_widget'dashboard_browser_nag'__'You are using an insecure browser!' ), 'wp_dashboard_browser_nag' );
        else
            
wp_add_dashboard_widget'dashboard_browser_nag'__'Your browser is out of date!' ), 'wp_dashboard_browser_nag' );
    }

    
// Right Now
    
if ( is_blog_admin() && current_user_can('edit_posts') )
        
wp_add_dashboard_widget'dashboard_right_now'__'Right Now' ), 'wp_dashboard_right_now' );

    if ( 
is_network_admin() )
        
wp_add_dashboard_widget'network_dashboard_right_now'__'Right Now' ), 'wp_network_dashboard_right_now' );

    
// Recent Comments Widget
    
if ( is_blog_admin() && current_user_can('moderate_comments') ) {
        if ( !isset( 
$widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {
            
$update true;
            
$widget_options['dashboard_recent_comments'] = array(
                
'items' => 5,
            );
        }
        
$recent_comments_title __'Recent Comments' );
        
wp_add_dashboard_widget'dashboard_recent_comments'$recent_comments_title'wp_dashboard_recent_comments''wp_dashboard_recent_comments_control' );
    }

    
// Incoming Links Widget
    
if ( is_blog_admin() && current_user_can('publish_posts') ) {
        if ( !isset( 
$widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {
            
$update true;
            
$num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;
            
$widget_options['dashboard_incoming_links'] = array(
                
'home' => get_option('home'),
                
'link' => apply_filters'dashboard_incoming_links_link''http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:' trailingslashitget_option('home') ) ),
                
'url' => isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters'dashboard_incoming_links_feed'$widget_options['dashboard_incoming_links']['url'] ) : apply_filters'dashboard_incoming_links_feed''http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=' $num_items '&output=rss&partner=wordpress&q=link:' trailingslashitget_option('home') ) ),
                
'items' => $num_items,
                
'show_date' => isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false
            
);
        }
        
wp_add_dashboard_widget'dashboard_incoming_links'__'Incoming Links' ), 'wp_dashboard_incoming_links''wp_dashboard_incoming_links_control' );
    }

    
// WP Plugins Widget
    
if ( ( ! is_multisite() && is_blog_admin() && current_user_can'install_plugins' ) ) || ( is_network_admin() && current_user_can'manage_network_plugins' ) && current_user_can'install_plugins' ) ) )
        
wp_add_dashboard_widget'dashboard_plugins'__'Plugins' ), 'wp_dashboard_plugins' );

    
// QuickPress Widget
    
if ( is_blog_admin() && current_user_can('edit_posts') )
        
wp_add_dashboard_widget'dashboard_quick_press'__'QuickPress' ), 'wp_dashboard_quick_press' );

    
// Recent Drafts
    
if ( is_blog_admin() && current_user_can('edit_posts') )
        
wp_add_dashboard_widget'dashboard_recent_drafts'__('Recent Drafts'), 'wp_dashboard_recent_drafts' );

    
// Primary feed (Dev Blog) Widget
    
if ( !isset( $widget_options['dashboard_primary'] ) ) {
        
$update true;
        
$widget_options['dashboard_primary'] = array(
            
'link' => apply_filters'dashboard_primary_link'__'http://wordpress.org/news/' ) ),
            
'url' => apply_filters'dashboard_primary_feed'__'http://wordpress.org/news/feed/' ) ),
            
'title' => apply_filters'dashboard_primary_title'__'WordPress Blog' ) ),
            
'items' => 2,
            
'show_summary' => 1,
            
'show_author' => 0,
            
'show_date' => 1,
        );
    }
    
wp_add_dashboard_widget'dashboard_primary'$widget_options['dashboard_primary']['title'], 'wp_dashboard_primary''wp_dashboard_primary_control' );

    
// Secondary Feed (Planet) Widget
    
if ( !isset( $widget_options['dashboard_secondary'] ) ) {
        
$update true;
        
$widget_options['dashboard_secondary'] = array(
            
'link' => apply_filters'dashboard_secondary_link'__'http://planet.wordpress.org/' ) ),
            
'url' => apply_filters'dashboard_secondary_feed'__'http://planet.wordpress.org/feed/' ) ),
            
'title' => apply_filters'dashboard_secondary_title'__'Other WordPress News' ) ),
            
'items' => 5,
            
'show_summary' => 0,
            
'show_author' => 0,
            
'show_date' => 0,
        );
    }
    
wp_add_dashboard_widget'dashboard_secondary'$widget_options['dashboard_secondary']['title'], 'wp_dashboard_secondary''wp_dashboard_secondary_control' );

    
// Hook to register new widgets
    // Filter widget order
    
if ( is_network_admin() ) {
        
do_action'wp_network_dashboard_setup' );
        
$dashboard_widgets apply_filters'wp_network_dashboard_widgets', array() );
    } elseif ( 
is_user_admin() ) {
        
do_action'wp_user_dashboard_setup' );
        
$dashboard_widgets apply_filters'wp_user_dashboard_widgets', array() );
    } else {
        
do_action'wp_dashboard_setup' );
        
$dashboard_widgets apply_filters'wp_dashboard_widgets', array() );
    }

    foreach ( 
$dashboard_widgets as $widget_id ) {
        
$name = empty( $wp_registered_widgets[$widget_id]['all_link'] ) ? $wp_registered_widgets[$widget_id]['name'] : $wp_registered_widgets[$widget_id]['name'] . " <a href='{$wp_registered_widgets[$widget_id]['all_link']}' class='edit-box open-box'>" __('View all') . '</a>';
        
wp_add_dashboard_widget$widget_id$name$wp_registered_widgets[$widget_id]['callback'], $wp_registered_widget_controls[$widget_id]['callback'] );
    }

    if ( 
'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget_id']) ) {
        
ob_start(); // hack - but the same hack wp-admin/widgets.php uses
        
wp_dashboard_trigger_widget_control$_POST['widget_id'] );
        
ob_end_clean();
        
wp_redirectremove_query_arg'edit' ) );
        exit;
    }

    if ( 
$update )
        
update_option'dashboard_widget_options'$widget_options );

    
do_action('do_meta_boxes'$screen->id'normal''');
    
do_action('do_meta_boxes'$screen->id'side''');
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics