web-dev-qa-db-ja.com

カスタム投稿タイプ統計をカスタムダッシュボードウィジェットに追加する

私はたくさんのカスタム投稿タイプを持っていて、それらを私の "Right Now"ダッシュボードに表示させていますが、かなり長くなったのでダッシュ内でカスタムウィジェットに分けたいと思います。

下記の例を参照してください。

enter image description here

だから私の質問はどのように私はカスタムダッシュボードウィジェットにCPTを追加するのですか?

どんな助けでも素晴らしいでしょう。

ありがとうございます。

編集:これは私が持っているものです(私は何が足りないのですか?)

// wp_dashboard_setup is the action hook

add_action('wp_dashboard_setup', 'mycustom_moviestats');


// add dashboard widget
function mycustom_moviestats() {

wp_add_dashboard_widget('custom_movie_widget', 'Movie Stats',                  'custom_dashboard_movie_list');

}

function custom_dashboard_movie_list(){

// here is the code to add custom post types + count see below

function my_right_now() {
$num_widgets = wp_count_posts( 'widget' );

$num = number_format_i18n( $num_widgets->publish );
$text = _n( 'Widget', 'Widgets', $num_widgets->publish );
if ( current_user_can( 'edit_pages' ) ) { 
    $num = "<a href='edit.php?post_type=widget'>$num</a>";
    $text = "<a href='edit.php?post_type=widget'>$text</a>";
}   

echo '<tr>';
echo '<td class="first b b_pages">' . $num . '</td>';
echo '<td class="t pages">' . $text . '</td>';
echo '</tr>';
}
add_action( 'right_now_content_table_end', 'my_right_now' );

}
2
Marco

ある関数が別の関数の中で宣言されていて、コードが間違っているようです。これを試してください。

// wp_dashboard_setup is the action hook
add_action('wp_dashboard_setup', 'mycustom_moviestats');

// add dashboard widget
function mycustom_moviestats() {
    wp_add_dashboard_widget('custom_movie_widget', 'Movie Stats','custom_dashboard_movie_list');
}

function custom_dashboard_movie_list(){

    $args = array(
        'public' => true ,
        '_builtin' => false );
    $output = 'object';
    $operator = 'and';
    echo '<table>';
    //loop over all custom post types
    $post_types = get_post_types( $args , $output , $operator );
    foreach( $post_types as $post_type ) {
        $num_posts = wp_count_posts( $post_type->name );
        $num = number_format_i18n( $num_posts->publish );
        $text = _n( $post_type->labels->singular_name, $post_type->labels->name , intval( $num_posts->publish ) );
        if ( current_user_can( 'edit_posts' ) ) {
            $num = "<a href='edit.php?post_type=$post_type->name'>$num</a>";
            $text = "<a href='edit.php?post_type=$post_type->name'>$text</a>";
        }
        echo '<tr><td class="first b b-' . $post_type->name . '">' . $num . '</td>';
        echo '<td class="t ' . $post_type->name . '">' . $text . '</td></tr>';
    }

    //loop over all taxonomies
    $taxonomies = get_taxonomies( $args , $output , $operator ); 
    foreach( $taxonomies as $taxonomy ) {
        $num_terms  = wp_count_terms( $taxonomy->name );
        $num = number_format_i18n( $num_terms );
        $text = _n( $taxonomy->labels->singular_name, $taxonomy->labels->name , intval( $num_terms ));
        if ( current_user_can( 'manage_categories' ) ) {
            $num = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$num</a>";
            $text = "<a href='edit-tags.php?taxonomy=$taxonomy->name'>$text</a>";
        }
        echo '<tr><td class="first b b-' . $taxonomy->name . '">' . $num . '</td>';
        echo '<td class="t ' . $taxonomy->name . '">' . $text . '</td></tr>';
    }
    echo '</table>';
}
1
Bainternet

私はこれがうまくいくと思います。

// wp_dashboard_setup is the action hook

add_action('wp_dashboard_setup', 'mycustom_moviestats');


// add dashboard widget
function mycustom_moviestats() {


wp_add_dashboard_widget('custom_movie_widget', 'widget name', 'custom_dashboard_movie_list');

}

function custom_dashboard_movie_list(){

// here is the code to add custom post types + count see below

}

カスタム投稿タイプ+カウントを追加するコードはすでに回答されていて、これが散らかっていました。ここで見つけることができます

ダッシュボードへのカスタム投稿タイプカウントの追加
あなたのfunctions.phpファイルに最適なコード集

0
Wyck