تابع get_posts وردپرس چیست و چگونه از آن برای ساخت لیست پست های PHP استفاده کنیم

وردپرس دریافت_پست ها تابع به شما امکان می دهد پست ها، صفحات و انواع پست های سفارشی را بر اساس بازیابی کنید روی پارامترهای داده شده با فیلتر کردن پست ها بر اساس کار می کند روی معیارهایی مانند تاریخ، نویسنده، نوع، مجوز یا کلید متا.

صاحبان سایت های وردپرسی می توانند از این تابع برای نمایش سریع مطالب مرتبط به کاربران استفاده کنند. به عنوان مثال، آنها می توانند لیستی از پست هایی را با بیشترین نظرات، همان نویسنده یا دسته بندی مشابه نمایش دهند.

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

وردپرس دریافت_پست ها تابع قابلیتی است که به شما امکان می دهد از پست ها پرس و جو کنید روی پارامترهای تعیین شده، مانند تاریخ انتشار، نویسنده، نوع، مجوز یا کلید متا.

توسعه دهندگان وردپرس از آن برای یافتن سریع پست های مطابق با معیارهای داده شده خود استفاده می کنند. به عنوان مثال، آنها می توانند لیستی از پست های با بیشترین بازدید، تاریخ انتشار یکسان یا دسته بندی مشابه را نشان دهند.

وردپرس get_posts چگونه کار می کند؟

وردپرس دریافت_پست ها تابع کد PHP را به پرس و جوهای SQL تبدیل می کند تا داده های پست را از پایگاه داده شما دریافت کند. این پرس و جوها مبتنی هستند روی پارامترهای داده شده شما – معیارهایی برای فیلتر کردن پست ها.

برای ساخت پرس و جوهای SQL، این تابع وردپرس از WP_query کلاس پس از پردازش کوئری ها، پایگاه داده آرایه ای از را برمی گرداند WP_post نتایج، که هر یک نشان دهنده یک شیء پست جداگانه است.

مهم! در این مورد، نوشته ها به پست ها، صفحات و انواع پست های سفارشی وردپرس مراجعه کنید.

WP_query همچنین می تواند محتوای پست را از پایگاه داده وردپرس بکشد و نمایش دهد روی مرورگر وب با این حال، حلقه وردپرس را تغییر می‌دهد و اگر پس از اجرای یک کوئری آن را بازنشانی نکنید، مشکلاتی ایجاد می‌کند.

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

مطالعه پیشنهادی

سایر آموزش های وردپرس ما را بررسی کنید:
روش صادرات پست ها روی وردپرس
روش اضافه کردن پست های مرتبط با وردپرس
روش برنامه ریزی پست ها در وردپرس

پارامترهای عملکرد وردپرس get_posts

این دریافت_پست ها تابع دارای پارامترهای مختلفی برای اعمال فیلترهای سفارشی است. برخی از پارامترهای مورد استفاده در هسته وردپرس عبارتند از:

  • پست های شماره – تعداد پست هایی را که تابع بازیابی می کند تنظیم می کند. مقدار پیش فرض پنج است.
  • دسته بندی – دسته پست های بازیابی شده را تعیین می کند.
  • عبارتند از – شناسه های پستی را که می خواهید در نتایج پرس و جو قرار دهید را مشخص می کند.
  • مستثنی کردن – شناسه های پستی را که می خواهید از نتایج پرس و جو حذف کنید را مشخص می کند.
  • نوع_پست – نوع شیء پستی را که درخواست سفارشی شما بازیابی می کند، فیلتر می کند. این می تواند پست، صفحه یا یک نوع پست سفارشی باشد.
  • وضعیت_پست – بر اینکه پرس و جو شما پست های پیش نویس، خصوصی یا منتشر شده را برمی گرداند تأثیر می گذارد.
  • سفارش – پست های بازیابی شده را به ترتیب صعودی یا نزولی مرتب می کند.
  • سفارش توسط – معیارهای مرتب سازی مانند تاریخ ارسال یا تعداد نظرات را تعیین می کند. استفاده کنید رند برای بازیابی پست های تصادفی
  • Post_mime_type – انواع پست های پیوست را جستجو می کند روی پارامترهای نوع mime
  • Suppress_filters – تعیین می کند که آیا فیلترها را سرکوب کند تا پرس و جو قابل تغییر نباشد. این پارامتر به صورت پیش فرض است درست است، واقعی.

بدون پارامترهای سفارشی، دریافت_پست ها تابع به طور پیش فرض آخرین پست ها را بازیابی می کند. شما باید یک آرایه از هدف – شی به تابع ارسال می کند و آرگومان هایی را برای فیلتر کردن پست ها با استفاده از این نحو مشخص می کند:

$example_array = get_posts($arguments);
   $arguments = array(
      "parameter_1" => value, 
      "parameter_2" => value
   );

WP_Posts Objects

وردپرس دریافت_پست ها تابع آرایه ای از پست اشیاء حاوی اطلاعات مختلف در مورد پست های وب سایت شما. برخی از خواص رایج از پست اشیاء عبارتند از:

  • شناسه – شماره شناسه پست
  • پست_نویسنده – شناسه کاربری عددی نویسنده پست.
  • عنوان_پست – عنوان پست
  • تاریخ ارسال – تاریخ انتشار پست در قالب YYYY-MM-DD.
  • پست_محتوا – محتوای پست
  • پست _وضعیت – وضعیت فعلی پست بازیابی شده، مانند منتشر شده یا پیش نویس.
  • post_modified – آخرین تاریخ تغییر پست
  • comment_count – تعداد نظرات روی پست.

استفاده کنید برای هر برای حلقه زدن آرایه های پست و اکو برای نمایش آنها در اینجا نمونه ای از ساختار کد آمده است:

foreach($example_array as $post)
   {
      echo "<h1>" . $post->post_title . "</h1><br>";
   }
دکمه File Manager در منوی مدیریت وب سایت hPanelدکمه File Manager در منوی مدیریت وب سایت hPanel

برای نشان دادن نتایج روی هر page، اضافه کردن دریافت_پست ها تابع قالب کودک. متناوبا، آن را در blog.php فایل برای نمایش نتایج روی یک وبلاگ page. بر هاستینگerبرنامه های وردپرس، این فایل ها از طریق مدیر فایل.

پیشنهاد می‌کنیم بخوانید:  10 گزینه برتر افزونه صفحه فرود وردپرس برای تبدیل بهتر در سال 1403
بنر میزبانی وردپرسبنر میزبانی وردپرس
تابع get_posts وردپرس چیست و چگونه از آن برای ساخت لیست پست های PHP استفاده کنیم 6

روش استفاده از تابع get_posts در وردپرس

وردپرس با توجه به پارامترهای مختلفی که دارد دریافت_پست ها تابع موارد استفاده متنوعی دارد. در این قسمت رایج ترین آنها را توضیح خواهیم داد.

برخی از سایت های وردپرس دارای ویجت هایی هستند که محبوب ترین پست ها را نشان می دهد. برای فعال کردن آن، استفاده کنید دریافت_پست ها برای پرس و جو آرایه ای از شناسه های پست مبتنی بر روی تعداد نظرات:

<?php
   $arguments = array(
      "orderby" => "comment_count", 
      "posts_per_page" => 10
   );
   $posts_array = get_posts($arguments);
   foreach($posts_array as $post)
   {
      echo "<h1>" . $post->post_title . "</h1><br>";
      echo "<p>" . $post->post_ID . "</p><br>";
   } 
?>

در مثال، آرگومان هایی را مشخص می کنیم که حاوی آرایه ای از پارامترها هستند که پست های درخواست شده را فیلتر می کند. در این مورد، ما از سفارش توسط پارامتر برای مرتب کردن پست ها بر اساس روی تعداد نظرات

ما نیز استفاده می کنیم post_per_page برای محدود کردن ارزش پست های نمایش داده شده در هر page به 10. سپس، آرایه‌ای ایجاد می‌کنیم که برای آن فراخوانی می‌کند دریافت_پست ها تابع، که استفاده می کند $ استدلال برای فیلتر کردن پست ها

پس از اینکه تابع پست ها را بازیابی کرد، برای هر روش نتایج را حلقه می کند. سپس اکو تابع شناسه و عنوان پست بازیابی شده را خروجی می دهد.

روش دریافت پست توسط نویسنده

اگر وب سایت وردپرس شما دارای چندین مشارکت کننده است، یافتن دستی پست ها از یک نویسنده خاص می تواند زمان بر باشد. برای انجام سریع این کار، از نویسنده پارامتر برای فیلتر کردن پست ها:

<?php
   $arguments = array(
      "numberposts" => -1,
      "author" => 2
   );
   $sample_array = get_posts($arguments);
   foreach($sample_array as $post)
   {
      echo "<h3> " . $post->post_title . "</h3>";
      echo "<p>" . $post->post_date . "</p>";
   }
?>

در آرگومان ها از دو پارامتر استفاده می کنیم – شماره پست ها و نویسنده. این شماره پست ها پارامتر تعداد پست های نشان داده شده را محدود می کند. از آنجایی که ما آن را تنظیم کردیم -1، همه پست ها بازیابی خواهند شد.

در همین حال، نویسنده پارامتر پست‌ها را فیلتر می‌کند و فقط آن‌هایی را نشان می‌دهد که بر اساس یک نویسنده خاص هستند روی شناسه آنها – در این مورد، شناسه نویسنده نمونه است 2. برای پرس و جو از چندین نویسنده، شناسه ها را در یک لیست جدا شده با کاما مشخص کنید.

روش دریافت پست در یک دسته

وردپرس دریافت_پست ها تابع معمولا برای بازیابی پست ها بر اساس استفاده می شود روی دسته های آنها پارامترهای مختلفی برای این کار وجود دارد که معمولاً عبارتند از:

  • دسته بندی – مستقر روی شناسه دسته
  • نام دسته – با استفاده از دسته راب، مانند اخبار یا حمایت شده است.
  • دسته__و – پرس و جو از آرایه ای از شناسه های دسته بندی متعدد.
  • دسته_نه_در – دریافت پست از شناسه دسته حذف شده

صرف نظر از پارامتر، نحو یکسان است. در اینجا نمونه ای از یک قطعه کد برای پرس و جو از پست های یک دسته با شناسه وجود دارد 1:

<?php
   $arguments = array(
      "numberposts" => -1,
      "category" => 1,
      "orderby" => "date",
      "order" => "DESC"
   );
   $category_array = get_posts($arguments);
   foreach($sample_array as $post)
   {
      echo "<h3> " . $post->post_title . "</h3>";
      echo "<p>" . $post->post_ID . "</p>";
   }
?>

در مثال، تعداد پست‌ها را روی قرار دادیم -1 تا همه آنها را نشان دهید و شناسه دسته را به عنوان فیلتر مشخص کنید. ما نیز از سفارش توسط و سفارش پارامترهایی برای مرتب کردن پست های درخواست شده به ترتیب نزولی روی تاریخ آنها

این دریافت_پست ها تابع پست ها را به آن برمی گرداند $category_array مستقر روی را $ استدلال مولفه های. سپس، کد نتایج را حلقه می کند تا شناسه و عنوان پست درخواست شده نمایش داده شود.

اگر می‌خواهید پست‌هایی را با چند دسته بازیابی کنید، آن را جایگزین کنید دسته بندی پارامتر با دسته__و. سپس، از لیست شناسه های دسته جدا شده با کاما به عنوان مقدار استفاده کنید. به عنوان مثال، در اینجا کدی وجود دارد که پست هایی با دسته های 1، 2 و 3 را نشان می دهد:

"category__and" => array("1","2","3")

این دسته بندی و نام دسته پارامترها همچنین می توانند یک آرایه را به عنوان مقدار خود بگیرند. بر خلاف دسته__و، آنها پست ها را از هر یک از دسته بندی های مشخص شده بازیابی می کنند. به مثال زیر توجه کنید:

"category_name" => array("news","archive","sponsored")

مثال کد تمام پست هایی را که به یک یا چند دسته از دسته بندی های مشخص شده تعلق دارند نشان می دهد. اگر استفاده می کنید دسته__و، این تابع فقط پست های هر سه دسته را نشان می دهد.

روش دریافت پست با کلیدهای متا و ارزش منطبق

اگر پست های وردپرس شما دارای یک فیلد سفارشی هستند، می توانید از آن استفاده کنید دریافت_پست ها برای بازیابی آنها بر اساس روی یک متا کلید و مقدار منطبق در اینجا پارامترهای مهم و عملکرد آنها آمده است:

  • متا_کلید – واکشی پست ها بر اساس روی کلید فیلد سفارشی
  • متا ارزش – پرس و جو بر اساس پست ها روی مقدار رشته کلید متا
  • meta_value_num – فیلتر کردن پست های مشابه متا ارزش اما از یک مقدار عددی استفاده می کند.
  • متا_مقایسه – اعمال یک عملیات برای آزمایش پارامتر مقدار متا.

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

<?php
   $arguments = array(
      "numberposts" => -1,
      "meta_key" => "color",
      "meta_value" => "blue", 
      "orderby" => "date",
      "order" => "ASC"
   );
   $category_array = get_posts($arguments);
   foreach($sample_array as $post)
   {
      echo "<h3> " . $post->post_title . "</h3>";
      echo "<p>" . $post->post_date . "</p>";
   }
?>

کد از تمام پست هایی که دارای آن هستند پرس و جو می کند رنگ فیلد سفارشی با a آبی ارزش. اگر شما را حذف کنید متا_کلید پارامتر، تمام پست ها را با a بازیابی می کند آبی مقدار، صرف نظر از نام فیلد سفارشی آنها. برعکس، حذف متا ارزش پست ها را با رنگ فیلد سفارشی با هر مقدار

پیشنهاد می‌کنیم بخوانید:  روش بازیابی وردپرس از پشتیبان: 4 روش موثر + بهترین روش

در همین حال، متا_مقایسه به شما امکان می دهد عملیاتی را برای تغییر روش عملکرد کلید و مقدار متا مشخص کنید. قطعه کد زیر را در نظر بگیرید:

<?php
   $arguments = array(
      "numberposts" => -1,
      "meta_key" => "color",
      "meta_value" => "blue", 
      "meta_compare" => "!=", 
   );
?>

ما استفاده می کنیم != مقدار برای حذف پست هایی با مقدار متا کلید مشخص شده. بنابراین، آرایه‌ای از پست‌ها به استثنای پست‌هایی را نشان می‌دهد آبی مقدار متا توصیه می کنیم به مستندات وردپرس برای مقادیر کامل عملیات

همچنین می توانید از چندین جفت متا کلید و مقدار برای ایجاد یک پرس و جو خاص تر استفاده کنید. برای انجام این کار، از meta_query پارامتر با آرایه های فیلتر به عنوان مقدار آن. سپس، استفاده کنید رابطه عملکرد با و یا یا ارزش برای ایجاد روابط بین آرایه ها. در اینجا نحو است:

<?php
   $arguments = array(
      "post_type" => "postname",
      "meta_query" => array(
      "relation" => "relation",
      array(
         "key" => "keyname",
         "value" => "keyvalue", 
         "compare" => "operation", 
      ),
      array(
         "key" => "keyname",
         "value" => "keyvalue", 
         "compare" => "operation", 
      ),
      ),
   );
?>

روش دریافت نوع پست سفارشی با تاکسونومی سفارشی

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

اگر سایت وردپرس شما دارای یک نوع پست سفارشی است، طبقه بندی به دسته بندی محتوای آن کمک می کند. به عنوان مثال، یک نوع پست فیلم ممکن است طبقه بندی های سفارشی مانند ژانر و تاریخ انتشار داشته باشد.

پرس و جو از پست های یک طبقه بندی از یک تابع مشابه برای دسته استفاده می کند. از نام طبقه بندی سفارشی به عنوان پارامتر استفاده کنید و نام اصطلاح یا شناسه را به عنوان مقدار مشخص کنید. به عنوان مثال، قطعه کد زیر یک نوع پست سفارشی با نام را پرس و جو می کند فیلم سینما برای پست های با مرور ژانر. دسته:

<?php
   $arguments = array(
      "numberposts" => -1,
      "post_type" => "movie",
      "genre" => "review",
      "orderby" => "date",
      "order" => "ASC"
   );
   $category_array = get_posts($arguments);
   foreach($sample_array as $post)
   {
      echo "<h3> " . $post->post_title . "</h3>";
      echo "<p>" . $post->post_date . "</p>";
   }
?>

همچنین می توانید از بیش از یک پارامتر برای ایجاد یک پرس و جو پست پیچیده استفاده کنید مالیات_پرسش. آرایه ای از آرایه ها را به عنوان مقدار در نظر می گیرد که هر کدام شامل پارامترهای زیر است:

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

به عنوان مثال، کد زیر پست‌ها را با پرس و جو می‌کند جان برچسب از مردم طبقه بندی:

<?php
   $arguments = array(
   "numberposts" => -1,
   "tax_query" => array(
      array(
      "taxonomy" => "people",
      "field" => "slug",
      "terms" => "john",
      ),
   ),
   "orderby" => "date",
   "order" => "ASC"
   );
?>

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

<?php
   $arguments = array(
   "tax_query" => array(
   "relation" => "AND",
   array(
      "taxonomy" => "movie_genre",
      "field" => "slug",
      "terms" => array( "thriller", "fantasy" ),
   ),
   array(
      "taxonomy" => "actor",
      "field" => "term_id",
      "terms" => array( 90, 105, 207 ),
      "operator" => "NOT IN",
   ),
   ),
?>

مطالعه پیشنهادی

درباره توابع PHP وردپرس بیشتر بدانید:
روش استفاده از وردپرس add_filter
روش استفاده از وردپرس wp_update_post
روش استفاده از تابع get_post_meta وردپرس

نتیجه

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

این تابع از WP_query کلاس برای ساخت یک کوئری SQL و ارسال آن به پایگاه داده وردپرس. سپس پایگاه داده آرایه ای از را برمی گرداند پست اشیاء نشان دهنده پست های وب سایت

پارامترهای مختلفی از وجود دارد دریافت_پست ها، مانند شماره پست ها، دسته بندی، و نوع_پست. همچنین برمی گردد WP_posts اشیاء حاوی داده های پست مانند شناسه، پست_نویسنده، و عنوان_پست.

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

پرسش و پاسخ وردپرس get_posts

برای کمک به درک بیشتر در مورد وردپرس دریافت_پست ها تابع، ما به چندین سوال متداول در مورد آن پاسخ خواهیم داد.

تفاوت بین get_posts و WP_query چیست؟

هر دو روش هایی برای پرس و جو و نمایش پست ها از پایگاه داده وب سایت شما هستند. با این حال WP_query کلاس بعد از هر پرس و جو حلقه وردپرس را تغییر می دهد و در صورت استفاده نادرست باعث ایجاد خطا می شود.

در همین حال، دریافت_پست ها متد پس از نمایش پست‌های درخواستی، حلقه را به‌طور خودکار بازنشانی می‌کند و آن را کمتر مستعد خطا و راحت‌تر می‌کند.

تفاوت بین توابع get_posts و get_pages چیست؟

بر خلاف دریافت_پست ها، get_pages تابع از WP_query کلاس و به طور مستقیم پایگاه داده را پرس و جو می کند. این توابع وردپرس همچنین دارای پارامترهای مختلف و اطلاعات بازیابی شده هستند. get_pages از مقدار متا و پارامترهای کلیدی استفاده نمی کند. همچنین فقط صفحات و انواع پست سلسله مراتبی را پرس و جو می کند.