اخیراً یکی از کاربران ما از ما پرسید که آیا امکان افزودن پستهای مهم به بایگانی های سفارشی نوع پست وجود دارد؟ به طور پیش فرض ، وردپرس از قابلیت های مهم برای پست ها برخوردار است ، اما برای سایر انواع پست ها نه. در این مقاله ما به شما نحوه افزودن پست های مهم در بایگانی های پست سفارشی وردپرس را نشان خواهیم داد. قبل از حرکت به جلو ، شما احتمالاً می خواهید یاد بگیرید که چگونه انواع پست سفارشی را ایجاد کنید در وردپرس.
افزودن پست های مهم در انواع پست سفارشی h4>
اولین کاری که شما باید انجام دهید نصب و فعال کردن انواع پست سفارشی چسبنده . پس از فعال کردن افزونه ، به تنظیمات »خواندن بروید و به بخش Sticky Custom Post Types بروید. در مرحله بعدی ، باید انواع پست سفارشی را در جایی که می خواهید Stick This گزینه در آن فعال باشد انتخاب کنید.
اکنون کاری که ما در اینجا انجام داده ایم این است که ویژگی پست های مهم را به انواع پست های سفارشی خود اضافه کرده ایم. پست های مهم در انواع پست های سفارشی درست مانند پست های چسبنده معمولی در صفحه اول نمایش داده می شوند.
مشکل این است که به طور پیش فرض وردپرس فقط پست های مهم را در صفحه اصلی نشان می دهد. این پست های مهم را در صفحات بایگانی نشان نمی دهد.
نمایش پست های مهم در بایگانی های سفارشی نوع پست h4>
فرض می کنیم شما یک نوع پست سفارشی برای بررسی فیلم دارید که پست های مهم را با استفاده از افزونه ای که در بالا ذکر کردیم فعال کنید. اکنون می خواهید پست های چسبنده شما در انواع پست های بررسی فیلم به گونه ای دیگر و در کنار بررسی های منظم فیلم غیرچسبناک نمایش داده شود. مانند این:
برای رسیدن به این هدف ، اولین چیزی که شما نیاز دارید یک الگوی بایگانی برای نوع پست سفارشی خود مانند این است: 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: بالا سمت راست؛ }
امیدواریم این مقاله به شما کمک کند پست های مهم را در بایگانی های سفارشی نوع پست اضافه کنید. برای س questionsال و بازخورد لطفاً در زیر نظر دهید
منبع: طارق حسن
منبع:
https://www.wpbeginner.com/wp-tutorials/how-to-add-sticky-posts-in-custom-post-type-archives/.