Search Google

Monday 29 December 2014

wordpress dashboard showing No activity yet!


  1. Here's how I got to show custom post types in the dashboard activity widget.
    • Copied & pasted the function wp_dashboard_recent_posts (from wp-admin/includes/dashboard.php)
    • Changed it slightly to pass post_type in the argument
    • Replaced the activity widget with one that calls the new function
    The following can be put in functions.php or a plugin.
    /**
     *
     * Show custom post types in dashboard activity widget
     *
     */
    
    // unregister the default activity widget
    add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
    function remove_dashboard_widgets() {
    
        global $wp_meta_boxes;
        unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);
    
    }
    
    // register your custom activity widget
    add_action('wp_dashboard_setup', 'add_custom_dashboard_activity' );
    function add_custom_dashboard_activity() {
        wp_add_dashboard_widget('custom_dashboard_activity', 'Activities', 'custom_wp_dashboard_site_activity');
    }
    
    // the new function based on wp_dashboard_recent_posts (in wp-admin/includes/dashboard.php)
    function wp_dashboard_recent_post_types( $args ) {
    
    /* Chenged from here */
    
     if ( ! $args['post_type'] ) {
      $args['post_type'] = 'any';
     }
    
     $query_args = array(
      'post_type'      => $args['post_type'],
    
    /* to here */
    
      'post_status'    => $args['status'],
      'orderby'        => 'date',
      'order'          => $args['order'],
      'posts_per_page' => intval( $args['max'] ),
      'no_found_rows'  => true,
      'cache_results'  => false
     );
     $posts = new WP_Query( $query_args );
    
     if ( $posts->have_posts() ) {
    
      echo '<div id="' . $args['id'] . '" class="activity-block">';
    
      if ( $posts->post_count > $args['display'] ) {
       echo '<small class="show-more hide-if-no-js"><a href="#">' . sprintf( __( 'See %s more…'), $posts->post_count - intval( $args['display'] ) ) . '</a></small>';
      }
    
      echo '<h4>' . $args['title'] . '</h4>';
    
      echo '<ul>';
    
      $i = 0;
      $today    = date( 'Y-m-d', current_time( 'timestamp' ) );
      $tomorrow = date( 'Y-m-d', strtotime( '+1 day', current_time( 'timestamp' ) ) );
    
      while ( $posts->have_posts() ) {
       $posts->the_post();
    
       $time = get_the_time( 'U' );
       if ( date( 'Y-m-d', $time ) == $today ) {
        $relative = __( 'Today' );
       } elseif ( date( 'Y-m-d', $time ) == $tomorrow ) {
        $relative = __( 'Tomorrow' );
       } else {
        /* translators: date and time format for recent posts on the dashboard, see http://php.net/date */
        $relative = date_i18n( __( 'M jS' ), $time );
       }
    
        $text = sprintf(
        /* translators: 1: relative date, 2: time, 4: post title */
         __( '<span>%1$s, %2$s</span> <a href="%3$s">%4$s</a>' ),
          $relative,
          get_the_time(),
          get_edit_post_link(),
          _draft_or_post_title()
         );
    
        $hidden = $i >= $args['display'] ? ' class="hidden"' : '';
        echo "<li{$hidden}>$text</li>";
       $i++;
      }
    
      echo '</ul>';
      echo '</div>';
    
     } else {
      return false;
     }
    
     wp_reset_postdata();
    
     return true;
    }
    
    // The replacement widget
    function custom_wp_dashboard_site_activity() {
    
        echo '<div id="activity-widget">';
    
        $future_posts = wp_dashboard_recent_post_types( array(
            'post_type'  => 'any',
            'display' => 3,
            'max'     => 7,
            'status'  => 'future',
            'order'   => 'ASC',
            'title'   => __( 'Publishing Soon' ),
            'id'      => 'future-posts',
        ) );
    
        $recent_posts = wp_dashboard_recent_post_types( array(
            'post_type'  => 'any',
            'display' => 3,
            'max'     => 7,
            'status'  => 'publish',
            'order'   => 'DESC',
            'title'   => __( 'Recently Published' ),
            'id'      => 'published-posts',
        ) );
    
        $recent_comments = wp_dashboard_recent_comments( 10 );
    
        if ( !$future_posts && !$recent_posts && !$recent_comments ) {
            echo '<div class="no-activity">';
            echo '<p class="smiley"></p>';
            echo '<p>' . __( 'No activity yet!' ) . '</p>';
            echo '</div>';
        }
    
        echo '</div>';
    }
     
     
    -----------------------------
    OK your code is working perfectly and what I did is that I changed the
    
    $args['post_type'] = array ('type_1','type_2','type_3','type_4','type_5')
    
    and all the following 'post_type'  => array( as above )
    
    so different post types are presented.
    
    thanks for sharing! 
     
    https://wordpress.org/support/topic/show-custom-post-types-in-dashboard-activity-widget 

No comments:

Post a Comment