فانکشن پیدا و لیست کردن تمام پست تایپ های سفارشی تعریف شده در یک سایت
در قالب سایت ممکن هست برای پست تایپ هایی تعریف شده باشه و همینطور بعضی از افزونه ها مثل edd پست تایپ های مخصوص خودشون رو به سایت اضافه می کنن .
برای اینکه بفهمیم چه پست تایپ هایی در سایت تعریف شدن و اونها رو لیست کنیم از این فانکشن استفاده می کنیم که پست تایپ ها رو در یک آرایه ذخیره می کنیم .
add_action('init', function(){ global $all_post_types; $all_post_types=array(); $post_types = get_post_types( array( 'public' => true ,'_builtin' => false), 'names' ); foreach($post_types as $key => $value){ $all_post_types[]=$value; } });
در صورتی که نیاز داشته باشیم که بدونیم از در هر پست تایپ چند پست منتشر شده و یا در جایی از سایت نمایش بدیم می تونیم با این کد تعداد پست ها رو پیدا کنیم و در آرایه ذخیره کنیم
add_action('init', function(){ global $all_post_types; $all_post_types=array(); $post_types = get_post_types( array( 'public' => true ,'_builtin' => false), 'names' ); foreach($post_types as $key => $value){ $args = array( 'post_type' => $value, 'post_status' => 'publish'); $the_query = new WP_Query( $args ); $count_posts= $the_query->found_posts; $all_post_types[$value]=$count_posts; } print_r($all_post_types); });
که خروجی اش چیزی شبیه این خواهد شد .
Array ( [article] => 98 [theme] => 234 [plugin] => 76 [codex] => 435 [blog] => 2130 )