hoseyn sahebi 21 تیر 1395 بدون نظر 85 بازدید آموزش طراحی سایت

در بخش داشبوردِ مدیریت وردپرس یک ویجت کاربردی وجود دارد که در یک نگاه اطلاعات کوتاهی درباره‌ی سایت شما برایتان به نمایش در می‌آورد. نام این ویجت At a Glance است. به صورت پیشفرض این ویجت تعداد پست‌ها، صفحات و نظرات را به شما نشان می‌دهد و اگر دسترسی‌های لازم را داشته باشید مستقیماً از این طریق می‌توانید آن بخش‌ها را ویرایش کنید.

افزودن بخش نوع پست‌ها به این ویجت ایده‌ی خوبی است چرا که دسترسی به آن ساده‌تر و کاربر پسندانه‌تر خواهد بود. با استفاده از اسنیپت زیر می‌توانید هر تعداد نوع پست سفارشی که خواستید به این ویجت اضافه کنید. تنها کاری که باید بکنید این است که آرایه‌ی $post_types را با آرایه‌ای از انواع پست‌هایی که می‌خواهید به ویجت اضافه کنید جایگزین نمایید. همان طور که می‌بینید این اسنیپت دارای یک شرط امنیتی است، بنابراین تنها کاربرانی که دسترسی لازم برای ویرایش هر نوع پستی را داشته باشند می‌توانند بر روی آن کلیک کرده و از آن استفاده کنند.

به محض این که بخش انواع پست‌ها را به این ویجت اضافه کنید، آیکنی دایره‌ای شکل به صورت پیشفرض به کنار آن‌ها اضافه خواهد شد، که شما به آسانی می‌توانید آن را با آیکن‌های موجود در MP6 یا وردپرس ۳.۸ به بالا جایگزین نمایید. این تغییرات توسط CSS انجام می‌شود و در واقع CSS است که این آیکن دایره‌ای شکل را با همان آیکنی که بخش انواع پستِ پست‌ها استفاده می‌کند جایگزین می‌نماید. شما می‌توانید صفت محتوای موجود در آن بخش را با یکی از آیکن‌های این مجموعه تعویض کنید. برای این کار کافی است آیکن مورد نظر خود را انتخاب کرده و CSS مربوط به آن را از لینک قبلی کپی کنید.

add_filter( 'dashboard_glance_items', 'custom_glance_items', 10, 1 );
function custom_glance_items( $items = array() ) {
    $post_types = array( 'post_type_1', 'post_type_2' );
    foreach( $post_types as $type ) {
        if( ! post_type_exists( $type ) ) continue;
        $num_posts = wp_count_posts( $type );
        if( $num_posts ) {
            $published = intval( $num_posts->publish );
            $post_type = get_post_type_object( $type );
            $text = _n( '%s ' . $post_type->labels->singular_name, '%s ' . $post_type->labels->name, $published, 'your_textdomain' );
            $text = sprintf( $text, number_format_i18n( $published ) );
            if ( current_user_can( $post_type->cap->edit_posts ) ) {
                $items[] = sprintf( '%2$s', $type, $text ) . "\n";
            } else {
                $items[] = sprintf( '<span class="%1$s-count">%2$s</span>', $type, $text ) . "\n";
            }
        }
    }
    return $items;
}
#dashboard_right_now a.post_type-count:before,
#dashboard_right_now span.post_type-count:before {
  content: "\f109";
}

نظرات کاربران (0)