This little plugin is meant for WordPress multisite. When network activated, it closes all the default dashboard widgets and adds your own. It populates your widget with the title and excerpt of any posts on your root blog that are in the category ‘support.’ It’s meant to make it easy for you to add tutorial links across the site to a place that most users go frequently.
It’s comment up a bit below but there’s not much too it. I remember struggling with something like this a number of years ago. So there is some evidence that I am getting better over time.
<?php /* Plugin Name: SOLA custom Dashboard Plugin URI: https://github.com/ Description: For adding directions to the dashboard Version: 1.0 Author: Tom Woodward Author URI: http://bionicteaching.com License: GPL2 License URI: https://www.gnu.org/licenses/gpl-2.0.html Domain Path: /languages Text Domain: sola-custom */ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); add_action('wp_dashboard_setup', 'sola_custom_dashboard_widgets'); function sola_custom_dashboard_widgets() { global $wp_meta_boxes; wp_add_dashboard_widget('custom_sola_widget', '<img style="width:100px; display:block; margin:0 auto;" src="'.plugin_dir_url( __FILE__ ).'/imgs/logo.png"><h1>Guidance</h1>', 'sola_custom_dashboard_posts'); } function sola_custom_dashboard_posts() { echo '<p>Use the links below to learn more about Sola.</p>'; //echo network_home_url(); // WP_Query arguments switch_to_blog(1);//switch to the home blog but you could put another source URL here $args = array( 'post_type' => array( 'post' ), 'post_status' => array( 'public' ), 'order' => 'ASC', 'orderby' => 'date', 'category_name' => 'support',// using the category support slug here ); // The Query $query = new WP_Query( $args ); // The Loop if ( $query->have_posts() ) { while ( $query->have_posts() ) { $post = $query->the_post(); // do something echo '<hr/><h2><a href="' . get_the_permalink() .'">'. get_the_title() . '</a></h2>'; echo '<p>' . get_the_excerpt() . '</p>'; } } else { // no posts found } // Restore original Post Data wp_reset_postdata(); restore_current_blog(); } /* Disable Default Dashboard Widgets @ https://digwp.com/2014/02/disable-default-dashboard-widgets/ */ function disable_default_dashboard_widgets() { global $wp_meta_boxes; // wp.. unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); // bbpress unset($wp_meta_boxes['dashboard']['normal']['core']['bbp-dashboard-right-now']); // yoast seo unset($wp_meta_boxes['dashboard']['normal']['core']['yoast_db_widget']); // gravity forms unset($wp_meta_boxes['dashboard']['normal']['core']['rg_forms_dashboard']); } add_action('wp_dashboard_setup', 'disable_default_dashboard_widgets', 999); //LOGGER -- like frogger but more useful if ( ! function_exists('write_log')) { function write_log ( $log ) { if ( is_array( $log ) || is_object( $log ) ) { error_log( print_r( $log, true ) ); } else { error_log( $log ); } } } //print("<pre>".print_r($a,true)."</pre>");