نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • جالب هست
  • فشار در دسته های مردانه php cat id. دسته بندی های PHP (درخت دسته)

فشار در دسته های مردانه php cat id. دسته بندی های PHP (درخت دسته)

با سلام خدمت همه خوانندگان وبلاگ وردپرس داخلدر سال 2011، تعطیلات پیش رو و پیش رو را به شما تبریک می گویم، برای شما آرزوی سلامتی، شادی و شادی فراوان برای 360 روز آینده دارم. همانطور که در مقاله‌ام در مورد برنامه‌های سال 2011 آینده قول داده بودم، در حال انجام اندکی بهبود همه وبلاگ‌های اصلی خود هستم - به‌روزرسانی سیستم‌ها، نصب آخرین نسخه‌های افزونه‌ها و جستجو در قالب‌ها به خاطر بهینه‌سازی و رفع اشکال. این کار بسیار دشوار بود، حتی می توانم بگویم بسیار پر زحمت - شما یک نادرستی را پیدا می کنید، تصمیم می گیرید آن را برطرف کنید، و 5 پروژه مجزا در مقابل خود دارید که برای هر کدام باید تغییراتی ایجاد کنید. خوب، از آنجایی که من قبلاً برای انجام همه این کارها برنامه ریزی کرده ام، هیچ بازگشتی وجود ندارد، در عین حال من تجربه بیشتری در این فرآیند کسب می کنم و قبلاً حدود 5-6 موضوع برای پست های وبلاگ جدید پیدا کرده ام :) امروز در مورد آن صحبت خواهیم کرد. دسته ها و توابع برای نمایش آنها.

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

ایمنی

اگر مشخصه عنوان حداقل معنایی برای سئو داشته باشد، آنگاه بسیار مفیدتر است که فقط نام دسته را در آنجا قرار دهیم، نه همه این متن های غیر ضروری. در واقع لینک بالا به هک به حل این مشکل کمک کرد. اما این کار نیست، همه اینها درست بود (کار می کرد) برای، که امکان پیش پردازش لیست حاصل را بدون نمایش فوری آن فراهم می کرد. اما سایر توابع برای نمایش دسته ها چطور؟ - مساله این است.

به عنوان مثال، امروز به طور تصادفی متوجه شدم که هنگام نمایش لیستی از دسته‌ها برای یک پست خاص، متن‌های غیرضروری زیادی در ویژگی عنوان یک پیوند نوشته می‌شود.

تمام مشکل این بود که استفاده می کند تابع the_category، که متأسفانه نمی توانید پارامتری را برای آن تنظیم کنید تا نتیجه تماس آن بلافاصله نمایش داده نشود. اما وردپرس تابع get_the_category دیگری دارد که آرایه ای از اشیاء دسته بندی را برای یک پست خاص برمی گرداند.

تابع get_the_category

نحو تابع get_the_category بسیار ساده است:

نام گربه ?>

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

شناسه)؛ var_dump ($categories ) ; ?>

شناسه)؛ var_dump ($categories); ?>

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

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

نام گربه . ""؛ )؟>

نام گربه . ""؛ )؟>

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

اصولاً می‌توان کد نمایش دسته‌ها را در یک فایل تابع قرار داد و سپس the_category را به یک تابع جدید در فایل‌های الگو تغییر داد، برای مثال به نام my_thecat (). البته فراموش نکنید که قبل از جایگزینی کد مناسب را به فایل functions.php اضافه کنید:

تابع my_thecat() ( global $post ; foreach ((get_the_category($post -> ID ) ) as $category ) (echo " cat_ID ) . "" title="" . $category -> cat_name . "">" . $ دسته -> cat_name. ";" ;))

function my_thecat() ($post جهانی; foreach((get_the_category($post->ID)) به عنوان $category) ( echo "cat_ID)."" title="".$category->cat_name."">".$ دسته->نام_گربه."؛ ";))

تست شده، همه چیز کار می کند. فقط یک سوال باقی مانده است - این همه چقدر مفید و بسیار ضروری است. اگر یک وبلاگ با طراحی دائمی دارید که می‌خواهید بهترین آن را بسازید، می‌توانید چند دقیقه وقت بگذارید و تغییراتی را متناسب با آن ایجاد کنید. اگر تعداد زیادی از این وبلاگ ها دارید، من فکر می کنم که دستکاری با عنوان مزایای سئو خاصی را به همراه نخواهد داشت، خرید لینک در Rotapost برای همه این پروژه ها آسان تر است - به هر حال، آزمایش افزایش TCI در سیستم با موفقیت و مثبت تکمیل شده است، به زودی گزارشی در مورد آن ارائه خواهد شد.

دسته های خروجی پست های سفارشی

نظرات نشان می دهد که نمونه های بالا برای انواع پست سفارشی کار نمی کنند. من با این کار مواجه نشده ام، بنابراین فقط می توانم به شما توصیه کنم که راه حل را در وبلاگ های انگلیسی زبان با استفاده از دسته بندی نمایش نوع پست سفارشی وردپرس جستجو کنید یا از راهنمایی کاربر Stinker (از نظرات) استفاده کنید. در محلی که دسته ها نمایش داده می شوند، فقط باید کد را جایگذاری کنید:

جایی که categoria_video طبقه بندی پست سفارشی است (معروف به سفارشی). و اکنون با جزئیات بیشتر از کجا و چه چیزی. برای مثال داریم:

// نوع ضبط ویدئو if ( ! function_exists ( "video_cp" ) ) ( function video_cp() ($labels = array ( "name" => _x( "Video" , "Post Type General Name" , "video") , "singular_name" => _x ( "Video" , "Post Type Singular Name" , "video" ) , "menu_name" => __( "Video" , "video" ) , "parent_item_colon" => __( "Parent:" , "video" ) , "all_items" => __( "همه ویدئوها", "video" ) , "view_item" => __( "View" , "video" ) , "add_new_item" => __( "افزودن ویدیوی جدید", "video" ) , "add_new" => __( "Add video" , "video" ) , "edit_item" => __( "ویرایش ویدئو", "video" ) , "update_item" => __( "Update video" , "video" ) , "search_items" => __( "Find video" , "video" ) , "not_found" => __( "Not_found" " , "video" ) , "not_found_in_trash" => __( "در سبد خرید یافت نشد", "ویدئو" ) , ) ; $args = آرایه ( "labels" => $labels , "supports" => آرایه ("عنوان" , "ویرایشگر" , "گزیده" ) , "taxonomies" => آرایه ("categoria_video") , // دسته ای که در زیر ایجاد می کنیم (با نام مستعار طبقه بندی)"public" => true , "menu_position" => 5 , "menu_icon" => "dashicons-id-alt" , ); register_post_type( "video" , $args ); ) add_action( "init" , "video_cp" , 0 ); // مقدار دهی اولیه) if ( ! function_exists ( "categoria_video" ) ) ( // دسته بندی برای مشاغل خالیتابع category_video() ($labels = آرایه ("name" => _x( "دسته های ویدئویی", "نام عمومی طبقه بندی" , "categoria_video" ) , "singular_name" => _x( "دسته ویدئو", "Taxonomy Singular Name" , "categoria_video" ) , "menu_name" => __( "Categories" , "categoria_video" ) , "all_items" => __( "Categories" , "categoria_video" ) , "parent""> __it ( "ویدیو دسته بندی والدین", "categoria_video" ) , "parent_item_colon" => __( "ویدیو دسته بندی والدین:", "categoria_video" ) , "new_item_name" => __( "دسته بندی جدید", "categoria_video" ) , "add_new_item" => __( "افزودن دسته جدید", "categoria_video" ) , "edit_item" => __( "ویرایش دسته", "categoria_video" ) , "update_item" => __( "به روز رسانی دسته", "categoria_video" ) , "search_items" => __( "جستجو" , "categoria_video" ) , "add_or_remove_items" => __( "افزودن یا حذف دسته", "categoria_video" ) , "choose_from_most_used" => __( "جستجو در میان محبوب", "categoria_video" ) , "not_found" => __( "یافت نشد" , "categoria_video" ) , ) ; $args = آرایه ( "labels" => $labels , "hierarchical" => true, "public" => true, ); register_taxonomy( "categoria_video" , array ( "video" ) , $args ) ; ) add_action( "init" , "categoria_video" , 0 ); // مقدار دهی اولیه }

// نوع پست ویدیو اگر (! function_exists("video_cp")) ( تابع video_cp() ($labels = array("name" => _x("Video"، "Post type name General"، "video")) " singular_name" => _x("Video", "Post Type Singular Name", "video"), "menu_name" => __("Video", "video"), "parent_item_colon" => __("Parent:" , "video"), "all_items" => __("همه ویدیوها"، "video"), "view_item" => __("View", "video"), "add_new_item" => __("افزودن ویدیوی جدید" " , "video"), "add_new" => __("افزودن ویدئو"، "ویدیو"), "edit_item" => __("ویرایش ویدئو"، "ویدیو"), "update_item" => __("به روز رسانی" ویدئو "، "ویدیو")، "جستجوی_آیتم" => __("یافتن یک ویدئو"، "ویدیو")، "نه_پیدا" => __("یافت نشد"، "ویدیو")، "نات_found_in_سطل زباله" => __( "در سبد خرید یافت نشد"، "ویدیو")))، $args = array("labels" => $labels، "supports" => آرایه ("عنوان"، "ویرایشگر"، "گزیده")، "taxonomies" = > آرایه ("categoria_video")، // دسته ای که در زیر ایجاد می کنیم (با نام مستعار طبقه بندی) "public" => true، "menu_position" => 5، "menu_icon" => "dashicons-id-alt",); register_post_type("video", $args); ) add_action("init", "video_cp", 0); // مقدار دهی اولیه ) if (! function_exists("categoria_video")) ( // دسته بندی های برای جاهای خالی تابع categoria_video() ($labels = array("name" => _x("دسته های ویدئو"، "نام عمومی طبقه بندی"، "categoria_video" "), "singular_name" => _x("دسته ویدئو"، "تاکسونومی نام مفرد"، "categoria_video")، "menu_name" => __("دسته ها"، "categoria_video")، "all_item" => __(" دسته‌بندی‌ها، "categoria_video")، "parent_item" => __("ویدیوی رده والد"، "categoria_video")، "parent_item_colon" => __("ویدیو رده والد:"، "categoria_video")، "new_item_name" => __("دسته جدید"، "categoria_video"), "add_new_item" => __("افزودن دسته جدید"، "categoria_video")، "edit_item" => __("ویرایش دسته"، "categoria_video")، "update_item" => __("به روز رسانی دسته"، "categoria_video"), "search_items" => __("جستجو"، "categoria_video")، "add_or_remove_items" => __("افزودن یا حذف دسته"، "categoria_video")، " select_from_most_used" => __("جستجو در میان توسط محبوب، "categoria_video"), "not_found" => __("یافت نشد"، "categoria_video"))); $args = array("labels" => $labels, "hierarchical" => true, "public" => true,); register_taxonomy("category_video", array("video"), $args); ) add_action("init", "categoria_video", 0); // مقداردهی اولیه)

با تشکر از کاربر Stinker برای راهنمایی، ممکن است برای شما مفید باشد.

P.S. نگهبان. در یکی از وبلاگ‌های Runet، مجموعه‌ای شگفت‌انگیز از تم‌های نمونه کار وردپرس از 17 قالب رایگان با کیفیت بالا یافت شد.

اجداد دور ما زمانی مجبور بودند از پست کبوتر و خدمات پیام رسان ها برای ارسال پیام در فواصل طولانی استفاده کنند. سپس یک تلگراف اولیه اختراع شد و تقریباً در همان زمان پست کاغذی ظاهر شد. و برای مدت طولانی لازم بود از قبل تلگرام تبریک بفرستید یا کارت پستال بفرستید. اما همه این باستانی ها در گذشته های دور باقی مانده اند. اکنون می توانید تنها در چند دقیقه یک پیام تبریک تولدت مبارک را به تلفن خود در هر زمان برای هر کسی که برای شما نزدیک است ارسال کنید!

تبریک های صوتی تولدت مبارک بهترین هدیه برای دوستان و اقوام است

صبح جشن باید با تبریک و هدایا شروع شود! آیا می خواهید یکی از عزیزان خود را با یک سورپرایز جالب خوشحال کنید، اما نمی دانید چگونه این کار را انجام دهید؟ اگر آواز در لیست فضیلت ها و استعدادهای شما گنجانده نشده است، بهتر است صبح زود در تلفن "Happy bezdeyo that yu-u-u" نخوانید. شما می توانید از طریق تلفن به ما یک تبریک تولد سفارش دهید. یک تبریک صوتی باحال از پوتین با یوتافون و لادا کالینا را به عنوان هدیه انتخاب کنید، یک شوخی از جانب وزارت موقعیت های اضطراری شجاع، یک تبریک شخصی از طرف ژیرینوفسکی ظالمانه، یک دیتی آتشین گرجی، یک تقلید مسخره آمیز، یک آهنگ روحی. ما برای کودکان و بزرگسالان برای هر سلیقه ای تبریک تولد مبارک داریم!

مزایای تبریک تولد آئودی به صورت تلفنی

همیشه نمی توان از همان صبح پسر تولد را با آتش بازی، شیرینی، شامپاین و هدایا خوشحال کرد. اگر دوست یا خویشاوند شما خیلی دور است، می توانید خود را به یک تماس تلفنی پیش پا افتاده در صبح محدود کنید. آیا شما هم فکر می کنید که خیلی خسته کننده و قدیمی است؟ سپس از امکانات فناوری های جدید استفاده کنید - تبریک تولد را در تلفن خود سفارش دهید و حال و هوای فوق العاده ای به ارمغان بیاورید! چنین شوخی طنز یا یک هدیه موسیقی مطمئناً مرد تولد را خوشحال می کند. او از شگفتی غیرمعمول شما شگفت زده خواهد شد!

بهترین کارت های صوتی با موضوع تولد مبارک را انتخاب کنید

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

  • تبریک های صوتی تولدت مبارک با نام از A تا Z یک سورپرایز تبریک دلپذیر برای مرد تولد خواهد بود. چنین احوالپرسی موزیکال یا کمیک به عنوان شخصاً برای او آماده شده است!
  • کارت های موسیقی برای علامت زودیاک، تحسین کننده کمی خرافی طالع بینی را خوشحال می کند و برای کل سال آینده برای او خوش شانسی به ارمغان می آورد.
  • تبریک های صوتی تولدت مبارک به یک زن یک هدیه فوق العاده برای مادران، مادربزرگ ها، معلمان یا دوست دختران خواهد بود.
  • کارت پستال برای عزیزان، خنده دار، از افراد مشهور به شما کمک می کند در مورد احساسات خود صحبت کنید، شما را تشویق می کند و شما را در خلق و خوی مثبت قرار می دهد.
  • تبریک موضوعی برای خواهر، دوست دختر، دوست پسر، مادربزرگ یا فرزند به شما امکان می دهد مناسب ترین هدیه فردی را انتخاب کنید.
  • تبریک های صوتی تولدت مبارک به یک مرد یک سورپرایز فوق العاده برای یک سالگرد خواهد بود، یک دوست قدیمی خوب یا یک دوست خوب را خوشحال می کند.

پیامک تبریک تولد ما حاوی آرزوهای مهربانانه و صمیمانه است. آیا یافتن کلمات مناسب برای ابراز عشق و قدردانی به یکی از عزیزان، برای تشکر از او برای چندین سال دوستی قوی برای شما دشوار است؟ تبریک تولد آماده برای مرد یا زن انتخاب کنید، یک کارت صوتی بفرستید و نگران چیزی نباشید!

به عزیزان خود گرما، مراقبت و احساسات مثبت بدهید!

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

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

بنابراین، ساختار باید شامل شناسه دسته (id)، نام دسته (نام) و البته شناسه دسته والد (parent_id) باشد. در MySQL به شکل زیر است:

در صورت عدم وجود «رده» جدول ایجاد کنید («id» int(10) بدون علامت NOT NULL AUTO_INCREMENT، «name» varchar(255) NOT NULL، «parent_id» int(11) NOT NULL، PRIMARY KEY («id»)) ENGINE =InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

ساختار جدول حداقل و قابل درک برای ذخیره دسته ها.

درج در «رده» («id»، «نام»، «شناسه_والد») VALUES (1، «تلفن‌ها و تبلت‌ها»، «0»)، (2، «ماشین‌ها»، «0»)، (3، «سامسونگ "، "1")، (4، "Apple"، "1")، (5، "LG"، "1")، (6، "Ford"، "2")، (7، "Lexus"، "2")، (8، "BMW"، "2")، (9، "Galaxy Tab 4"، "3")، (10، "Galaxy S6"، "3")؛

در جایی که parent_id=0، این دسته هیچ دسته والد ندارد.

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

تابع get_cat() ( // پرس و جو از پایگاه داده $sql = "SELECT * FROM دسته"؛ $result = mysql_query($sql)؛ if(!$result) ( NULL; ) $arr_cat = array(); if( mysql_num_rows ($ نتیجه) != 0) ( //برای ($i = 0؛ $i< mysql_num_rows($result);$i++) { $row = mysql_fetch_array($result,MYSQL_ASSOC); //Формируем массив, где ключами являются адишники на родительские категории if(empty($arr_cat[$row["parent_id"]])) { $arr_cat[$row["parent_id"]] = array(); } $arr_cat[$row["parent_id"]] = $row; } //возвращаем массив return $arr_cat; } }

//دریافت آرایه کاتالوگ $result = get_cat();

اکنون به یک تابع با بازگشت نیاز داریم

تابع view_cat($arr,$parent_id = 0) (//شرایط خروج بازگشت if(empty($arr[$parent_id])) (return; ) echo "

    "; // در آرایه حلقه بزنید و برای ($i = 0; $i) نمایش دهید< count($arr[$parent_id]);$i++) { echo "
  • " .$arr[$parent_id][$i]["name"].""؛ //recursion - بررسی کنید که آیا دسته‌های فرزندی وجود دارد view_cat($arr,$arr[$parent_id][$i]["id "] )؛ اکو "
  • ";) اکو"
"; }

اکنون تنها نمایش دایرکتوری روی صفحه با استفاده از تابع بازگشتی باقی مانده است

View_cat ($result);

و به طور کلی، این همه است. به این ترتیب می توانیم یک درخت کامل از دسته ها با زیرمجموعه های بی نهایت بدست آوریم.

داده های دسته مشخص شده را دریافت می کند.

اگر یک شی حاوی اطلاعات مربوط به دسته را به پارامتر $category ارسال کنید، این داده ها در حافظه پنهان ذخیره می شوند.

اگر شناسه دسته را به پارامتر $category ارسال کنید، در صورت وجود، داده های دسته از پایگاه داده یا از حافظه پنهان بازیابی می شوند.

به عملکرد توجه کنید get_term()، که با get_category یکسان است. با کمک آن، می‌توانید داده‌هایی را از طبقه‌بندی به غیر از دسته دریافت کنید.

✈ 1 بار = 0.000443s = به سرعت| 50000 بار = 0.92 ثانیه = خیلی سریع| PHP 7.0.5، WP 4.5.1

هیچ قلابی وجود ندارد.

استفاده

$cat = get_category ($category, $output, $filter); دسته $ (تعداد) (الزامی)شناسه دسته یا یک شی حاوی داده های دسته.
پیش فرض: خیرخروجی $ (مقدار ثابت)

چه نوع آرایه ای برای برگرداندن داده ها:

  • OBJECT - شی;
  • ARRAY_A - آرایه انجمنی.
  • ARRAY_N - آرایه نمایه شده.

پیش فرض: OBJECT

$ فیلتر (خط)فیلتر (من دقیقا متوجه نشدم چه نوع فیلتری است).
پیش فرض: "خام"

مثال ها

#یک. بیایید داده های دسته ای را که در آن قرار داریم (صفحه فعلی) نمایش دهیم:

$thisCat = get_category(get_query_var("cat")); print_r($thisCat);

در نتیجه، چیزی شبیه به این را خواهیم دید:

شیء StdClass ( => 85 => نام دسته => نام دسته => 0 => 85 => دسته => => 70 => 0 => 85 => 0 => => نام دسته => نام دسته => > 70)

برترین مقالات مرتبط