نحوه استفاده از WP_Query برای فراخوانی داده و پست و مقاله از دیتابیس
در وردپرس یک کلاسی وجود دارد به نام WP_Query که کاربرد آن این است که به طراحان قالب و افزونه وردپرسی این امکان را میدهد تا به راحتی کوئری های دلخواه خودشان را بنویسند و هر محتوایی که میخواهند را با توجه به پارامتر های مورد نظرشان از دیتابیس دریافت کنند
در زیر میخوام بهتون نشون بدم چطوری کار میکنه
<?php // The Query $the_query = new WP_Query( 'category_name=movies' ); ?>
ما اومدیم از این کلاس یک ابجکت ساختیم به نام $the_query و موقع ساخت این ابجکت به تابع سازنده یک استرینگ دادیم که در آن نام دسته بندی را ست کردیم
حالا اگر بخواهیم میتوانیم به تابع سازنده ارایه بدهیم و کامل با توجه به پارامتر هایی میدهیم از دیتابیس برای ما پست میگیرد و داخل این ابجکت ذخیره میکند
بعد از آن ما باید حلقه وردپرس را صدا بزنیم و داخل حلقه از توابع the_title() و خیلی چیز های دیگه استفاده کنیم تا داده هایمان را دریافت کنیم
حلقه استاندارد Standard Loop
<?php // The Query $the_query = new WP_Query( 'category_name=movies' ); // The Loop if ( $the_query->have_posts() ) { echo '<ul>'; while ( $the_query->have_posts() ) { $the_query->the_post(); echo '<li>' . get_the_title() . '</li>'; } echo '</ul>'; } else { // no posts found } /* Restore original Post Data */ wp_reset_postdata(); ?>
کد بالا نوشته ها را از دسته بندی فیلم به صورت li داخل یک ul نشان میدهد و بعد از انجام کار با استفاده از تابع wp_reset_postdata(); کوئری که وردپرس ساخته بود را پاک میکنیم تا در ادامه بتوانیم همان پست هایی که باید لود شوند لود شوند و هیچ گونه اختلالی برای کوئری های دیگر ایجاد نکند
Methods and Properties پراپرتی ها و متود های داخل این ابجکت
شدیدا توصیه میکنم که پراپرتی هارو مستقیما تغییر ندید و با استفاده از متود های داخل ابجکت تغییراتتون رو اعمال کنید
Properties پراپرتی ها ( متغیر های داخل ابجکت)
- $query
- مقدار کوئری استرینگ که از طریق ابجکت از نوع $wp_query به کلاس وردپرسی داده شد.
- $query_vars
- An associative array containing the dissected $query: an array of the query variables and their respective values.
- $queried_object
- Applicable if the request is a category, author, permalink or Page. Holds information on the requested category, author, post or Page.
- $queried_object_id
- If the request is a category, author, permalink or post / page, holds the corresponding ID.
- $posts
- Gets filled with the requested posts from the database.
- $post_count
- تعداد پست هایی که نمایش داده میشوند.
- $found_posts
- تعداد پست هایی که با مقادیری که کوئری زدیم همخوانی دارند
- $max_num_pages
- تعداد صفحاتی که خروجی قرار است نمایش داده شود ، این مقدار برابر است با $found_posts / $posts_per_page
- $current_post
- (available during The Loop) Index of the post currently being displayed.
- $post
- (available during The Loop) The post currently being displayed.
<?php $is_single; $is_page; $is_archive; $is_preview; $is_date; $is_year; $is_month; $is_time; $is_author; $is_category; $is_tag; $is_tax; $is_search; $is_feed; $is_comment_feed; $is_trackback; $is_home; $is_404; $is_comments_popup; $is_admin; $is_attachment; $is_singular; $is_robots; $is_posts_page ; $is_paged ; ?>
با توجه به نوع درخواستی که کاربر از صفحه در وردپرس دارد توابع بالا مشخص میکنند که آیا در اینجا یک برگه است یا صحه آرشیوه یا صفحه اصلیه برای اطلاعات کامل تر به مقاله
- also توابع با خروجی شرطی در وردپرس مراجعه کنید.
دیدگاه های این مطلب