نحوه افزودن پست های مهم در بایگانی های سفارشی نوع پست وردپرس

اخیراً یکی از کاربران ما از ما پرسید که آیا امکان افزودن پستهای مهم به بایگانی های سفارشی نوع پست وجود دارد؟ به طور پیش فرض ، وردپرس از قابلیت های مهم برای پست ها برخوردار است ، اما برای سایر انواع پست ها نه. در این مقاله ما به شما نحوه افزودن پست های مهم در بایگانی های پست سفارشی وردپرس را نشان خواهیم داد. قبل از حرکت به جلو ، شما احتمالاً می خواهید یاد بگیرید که چگونه انواع پست سفارشی را ایجاد کنید در وردپرس.

افزودن پست های مهم در انواع پست سفارشی h4>

اولین کاری که شما باید انجام دهید نصب و فعال کردن انواع پست سفارشی چسبنده . پس از فعال کردن افزونه ، به تنظیمات »خواندن بروید و به بخش Sticky Custom Post Types بروید. در مرحله بعدی ، باید انواع پست سفارشی را در جایی که می خواهید Stick This گزینه در آن فعال باشد انتخاب کنید.

Enabling sticky posts for custom post types

اکنون کاری که ما در اینجا انجام داده ایم این است که ویژگی پست های مهم را به انواع پست های سفارشی خود اضافه کرده ایم. پست های مهم در انواع پست های سفارشی درست مانند پست های چسبنده معمولی در صفحه اول نمایش داده می شوند.

مشکل این است که به طور پیش فرض وردپرس فقط پست های مهم را در صفحه اصلی نشان می دهد. این پست های مهم را در صفحات بایگانی نشان نمی دهد.

نمایش پست های مهم در بایگانی های سفارشی نوع پست h4>

فرض می کنیم شما یک نوع پست سفارشی برای بررسی فیلم دارید که پست های مهم را با استفاده از افزونه ای که در بالا ذکر کردیم فعال کنید. اکنون می خواهید پست های چسبنده شما در انواع پست های بررسی فیلم به گونه ای دیگر و در کنار بررسی های منظم فیلم غیرچسبناک نمایش داده شود. مانند این:

Showing a sticky post on a custom post type archive page

برای رسیدن به این هدف ، اولین چیزی که شما نیاز دارید یک الگوی بایگانی برای نوع پست سفارشی خود مانند این است: archive-post-type.php . بیاموزید چگونه ایجاد صفحه بایگانی نوع پست سفارشی . به عنوان مثال ، اگر یک پست سفارشی movie-reviews دارید ، پس الگوی صفحه بایگانی شما باید archive-movie-reviews.php باشد. اگر الگویی ندارید ، یک الگو ایجاد کنید. به سادگی محتوای archive.php را در فهرست موضوع خود کپی کرده و در یک پرونده جدید archive-your-post-type.php وارد کنید.

مرحله بعدی افزودن این کد در پرونده توابع.php طرح زمینه شماست:

عملکرد wpb_cpt_sticky_at_top ($ ارسال) {
 
    // آن را فقط در بایگانی اعمال کنید
    if (is_main_query () && is_post_type_archive ()) {
        $ wp_query جهانی؛
 
        $ sticky_posts = get_option ('پستهای_چسبنده')؛
        $ num_posts = تعداد ($ ارسال)؛
        $ sticky_offset = 0؛
 
        // پست های مهم را پیدا کنید
        برای ($ i = 0؛ $ i  ID ، $ sticky_posts)) {
                $ sticky_post = $ پست [$ i]؛
 
                // چسبناک را از موقعیت فعلی بردارید
                array_splice ($ پست ، $ i ، 1) ؛
 
                // به جلو حرکت کنید ، بعد از چسبهای دیگر
                array_splice ($ پست ، $ sticky_offset ، 0 ، آرایه ($ sticky_post))؛
                $ sticky_offset ++؛
 
                // حذف پست از آرایه پست های مهم
                $ offset = array_search ($ sticky_post-> ID ، $ sticky_posts) ؛
                unset ($ sticky_post [$ offset])؛
            }
        }
 
        // در صورت لزوم به دنبال پست های مهم باشید
        if (! خالی ($ sticky_post)) {
 
            $ stickies = get_posts (آرایه (
                'post__in' => $ پست چسبنده ،
                'post_type' => $ wp_query-> query_vars ['post_type'] ،
                'post_status' => 'انتشار' ،
                'nopaging' => درست است
            ))
 
            foreach ($ stickies به عنوان $ sticky_post) {
                array_splice ($ پست ، $ sticky_offset ، 0 ، آرایه ($ sticky_post))؛
                $ sticky_offset ++؛
            }
        }
 
    }
 
    بازگشت $ posts؛
}
 
add_filter ('the_posts'، 'wpb_cpt_sticky_at_top')؛

// به سبک متفاوت ارسال مطالب ، کلاس مهم را در عنوان مقاله اضافه کنید

تابع cpt_sticky_class ($ کلاس ها) {
if (is_sticky ()) است:
$ class [] = 'چسبناک'؛
کلاسهای $ را برگردانید
endif
کلاسهای $ را برگردانید
}
add_filter ('post_class'، 'cpt_sticky_class')؛

کد بالا پست های مهم شما را به بالا منتقل می کند ، و اگر طرح زمینه شما از تابع post_class () استفاده می کند ، در کلاس پست چسبناک می شود.

می توانید پست های مهم خود را با استفاده از کلاس . sticky در صفحه سبک خود سبک کنید. مثال:

چسبناک {
background-color: #ededed؛
background-image: url ('http://example.com/wp-content/uploads/featured.png')؛
background-تکرار: بدون تکرار؛
background-position: بالا سمت راست؛
}

Styling sticky posts

امیدواریم این مقاله به شما کمک کند پست های مهم را در بایگانی های سفارشی نوع پست اضافه کنید. برای س questionsال و بازخورد لطفاً در زیر نظر دهید

منبع: طارق حسن

منبع:
https://www.wpbeginner.com/wp-tutorials/how-to-add-sticky-posts-in-custom-post-type-archives/.

دیدگاهتان را بنویسید