J'ai beaucoup de types d'articles personnalisés et je les ai affichés dans mon tableau de bord "En ce moment", mais il est devenu assez long, je souhaite donc les séparer en un widget personnalisé dans le tiret.
Voir exemple ci-dessous:
Ma question est donc la suivante: comment ajouter les CPT à un widget de tableau de bord personnalisé?
Toute aide serait géniale.
Merci!
EDIT: C'est ce que j'ai (Qu'est-ce qui me manque?)
// 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' );
}
On dirait que vous avez une fonction déclarée dans une autre fonction, votre code est faux, essayez ceci:
// 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>';
}
Je pense que ça va marcher.
// 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
}
Le code pour ajouter des types de messages personnalisés + nombre a déjà été répondu et cela encombrerait cela. Il peut être trouvé ici,
Ajout de comptes personnalisés au type de message dans le tableau de bord
Meilleure collection de code pour votre fichier functions.php