در وردپرس، مدیریت محتوای وبسایتها بسیار مهم است و این امر با ابزارها و کلاسهای مختلفی انجام میشود. یکی از این ابزارها کلاس WP_Posts_List_Table
است که به ما کمک میکند تا لیست پستها را به راحتی مدیریت کنیم. یکی از متدهای مهم این کلاس، formats_dropdown()
است که در این مطلب میخواهیم به بررسی آن بپردازیم.
متد formats_dropdown()
به ما این امکان را میدهد که یک منوی کشویی (Dropdown) برای انتخاب فرمتهای مختلف پستها ایجاد کنیم. فرمتهای پست در وردپرس انواع مختلفی از محتوا را تعریف میکنند؛ به عنوان مثال، یک پست میتواند به عنوان ویدئو، تصویر یا سوال مطرح شود. این متد به ما این امکان را میدهد که از بین این فرمتها گزینهای را انتخاب کنیم و نتایج مورد نظر خود را فیلتر کنیم.
استفاده از این متد باعث تسهیل مدیریت و جستجوی محتوا میشود. به عنوان یک توسعهدهنده، اگر بخواهید لیستی از پستها را بر اساس فرمت آنها فیلتر کنید، میتوانید به راحتی با استفاده از این متد این کار را انجام دهید. به این ترتیب، کاربرهای سایت شما میتوانند محتوا را به شکل بهتری پیدا کنند و با آن تعامل داشته باشند.
اکنون که با مفهوم کلی formats_dropdown()
آشنا شدیم، بیایید نگاهی به نحوه استفاده از آن در کد بیندازیم. در مثال زیر، ما یک منوی کشویی برای انتخاب فرمتهای پست ایجاد میکنیم و آن را در صفحه مدیریت وردپرس نمایش میدهیم.
public function formats_dropdown() {
$post_formats = get_post_format_strings();
$current_format = isset( $_GET['post_format'] ) ? $_GET['post_format'] : '';
echo '<select name="post_format">';
foreach ( $post_formats as $format_value => $format_label ) {
$selected = selected( $current_format, $format_value, false );
echo '<option value="' . esc_attr( $format_value ) . '" ' . $selected . '>' . esc_html( $format_label ) . '</option>';
}
echo '</select>';
}
حال بیایید کد بالا را خط به خط بررسی کنیم:
خط 1: تعریف تابع
در این خط ما تابع formats_dropdown()
را تعریف میکنیم که بدون هیچ ورودی کار میکند.
خط 2: دریافت فرمتهای پست
با استفاده از تابع get_post_format_strings()
فرمتهای موجود پست را دریافت میکنیم و آنها را در متغیری به نام $post_formats
ذخیره میکنیم.
خط 3: دریافت فرمت فعلی
در این خط، فرمت فعلی که کاربر انتخاب کرده است را بررسی میکنیم. اگر فرمت فعلی وجود داشته باشد، آن را در متغیر $current_format
ذخیره میکنیم.
خط 5: شروع ایجاد منوی کشویی
اینجا ما با استفاده از echo
، تگ <select>
را برای منو تعریف میکنیم و نام آن را post_format
قرار میدهیم.
خطهای 6 تا 8: اضافه کردن گزینهها
در این بخش با استفاده از یک حلقه foreach
، به ازای هر فرمت موجود یک گزینه در منو ایجاد میکنیم. برای هر گزینه، بررسی میکنیم که آیا فرمت فعلی با فرمت گزینه مطابقت دارد یا خیر، و در صورت مطابقت آن را انتخاب میکنیم.
خط 9: پایان منوی کشویی
در آخر، تگ </select>
را برای بستن منوی کشویی اضافه میکنیم.