Заглавия и категории на WordPress, функция wp_list_categories. PHP клас за удобна и безопасна работа с MySQL Функция wp_list_categories за категория WordPress

) Показах ви пример за употреба регулярни изразиза намиране на конкретни парчета изходен кодстраници. Сега ще се научим как да ги пишем сами. Това умение ще ви помогне да пишете, да изчиствате текст от ненужни фрагменти, да търсите необходимите части в големи обеми текст и т.н.

Дата на публикуване: 20.10.2013 г

Продължаваме да пишем анализатор на статистически данни за посетителите в интернет на живо. Ако някой току-що се е присъединил към нас, тогава ви съветвам да започнете с това, където се свързахме с услугата без разрешение. Там се научихме как да получаваме съдържание от отворени страници, които не са защитени с парола. Но всъщност достъпът до повечето сайтове е затворен, така че има много малка полза от скрипт, който не може да влезе, както разбирате. Но не се притеснявайте, сега ще оправим всичко.

Дата на публикуване: 08.10.2013 г

Добър ден, читатели! Време е да се упражнявате малко. Вече имате достатъчно знания, за да започнете да пишете полезни скриптовекоето ще улесни работата ви. Един от тях може да бъде анализатор. Описах подробно какво е това в моя, така че ако не знаете, съветвам ви да го прочетете. Накратко, същността на парсера се свежда до търсене и изолиране необходимата информацияот голямо парче текст. В случая с интернет това най-често включва извличане на необходимите данни от страниците на уебсайта. В нашия случай това ще бъде Liveinternet. Така че, да тръгваме!

Дата на публикуване: 03/10/2013

Тази статия ще говори за това мощен инструменткато cURL, както и библиотеката за php, която предоставя достъп до този инструмент - libcurl. За какво е всичко това? За да комуникирате със сървъра, като използвате протоколи за пренос на данни, например http или ftp. Останалите протоколи не са особено интересни за нас; ако някой иска да се задълбочи в тази тема, ще трябва да изрови англоезични ресурси, а тази статия ще съдържа основите и примерите за използване.

Дата на публикуване: 24.11.2012 г

Дата на публикуване: 05.11.2012 г

И сега ще има доста голям, но не сложен урок за работа с файлове в PHP. Първо, за какво са файловете? В крайна сметка можете да съхранявате всичко в базата данни MySQL данниили PostgreSQL или друг. Но понякога има задачи, когато използването на база данни, с цялата обработка и грижа за сигурността на връзката, не е препоръчително. Например, трябва да направим обикновен брояч, но преди това не използвахме база данни в проекта. И така, в името на един малък брояч, трябва ли да създадем база данни и да съхраняваме само няколко реда в нея? Тук е много по-лесно да използвате файлове. Освен това понякога хостингът изобщо не поддържа бази данни, тогава файловете обикновено са единствената опция.

Дата на публикуване: 04.11.2012 г

Всеки път, когато позволявате на вашите потребители да изпращат текст към вашия сайт (име или друга информация), трябва да внимавате. Трябва да сте сигурни, че нямате никакви дупки в сигурността на вашия сайт, които нападателите могат да използват, за да проникнат в уебсайта ви. Ако все още трябва да получавате данни от потребителя, не забравяйте да използвате функцията htmlentities, за да предотвратите стартирането на HTML код или скриптове, които могат да бъдат вредни и опасни!

Дата на публикуване: 04.11.2012 г

В този урок ще разгледаме техники за предаване на данни между формуляри и страници. Такива методи са POST и GET. Ще говорим за всеки поотделно и по-подробно. Най-общо казано, това е необходимо за комуникация между формулярите. Например, попълваме някои полета на страница и трябва да ги прехвърлим на друга страница за обработка.

Дата на публикуване: 03.11.2012 г

Всъщност, както може би се досещате, do while цикълът е нещо като a модифицирана версия докато цикъл, което направихме в предишните уроци. Ако си спомняте как работи обикновен цикъл while, ще ви бъде по-лесно да разберете новия цикъл. Нека повторим: тялото на цикъла while се изпълнява, ако условието е вярно и не се изпълнява, ако не е вярно, но може да не се изпълни нито веднъж, ако условието е невярно от самото начало. Как се справя по време на работа?

Дата на публикуване: 03.11.2012 г

Представете си, че имате асоциативен масив, който искате да повторите. PHP предоставя лесен начин за използване на всеки елемент от масив на свой ред с помощта на конструкцията Foreach.

Днес нашата цел е да създадем йерархична структура от категории. За нас е важно да е удобно да съхраняваме категориите и да ги показваме лесно там, където имаме нужда.

Понякога простите неща изглеждат сложни, поради което ще публикувам няколко фрагмента от код, които се надявам да ви бъдат полезни за внедряване на PHP категории под формата на дърво.

Така че структурата трябва да се състои от идентификатора на категорията (id), името на категорията (name) и разбира се идентификатора на родителската категория (parent_id). В MySQL изглежда така:

СЪЗДАВАНЕ НА ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА `category` (`id` int(10) unsigned 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 ;

Минимална и ясна структура на таблица за съхраняване на категории.

INSERT INTO `category` (`id`, `name`, `parent_id`) СТОЙНОСТИ (1, "Телефони и таблети", "0"), (2, "Автомобили", "0"), (3, "Samsung ", "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 категории и едва след това да използваме рекурсия, за да формираме нашето дърво. Следната функция е предназначена да получи този списък:

Функция get_cat() ( //заявка за база данни $sql = "SELECT * FROM категория"; $result = mysql_query($sql); if(!$result) ( return NULL; ) $arr_cat = array(); if( mysql_num_rows( $result) != 0) ( //В цикъла формираме масив for($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"]." //рекурсия - проверете дали има дъщерни категории view_cat($arr,$arr[$parent_id][$i]["id" ] );
  • "; ) ехо "
"; }

Сега всичко, което остава, е да се покаже директорията на екрана с помощта на рекурсивна функция

View_cat($резултат);

И като цяло това е всичко. По този начин можем да получим пълно дърво на категориите с безкрайни подкатегории.

За всеки пост и запис потребител на wordpressможе да посочи едно или повече заглавия (категории). Тази функция ви позволява да групирате публикации, които са сходни по значение, и предоставя на посетителите възможност да четат и разглеждат само онези секции, които харесват. Например, когато създадох основния си блог, Tod’s Blog, щях да пиша за всички нюанси на Интернет – от дизайна до програмирането. Да приемем, че човек е стигнал от търсачка до статия за Wordpress и иска да прочете още повече за системата - ще трябва да се рови в архивите, да използва повторно търсенето или да прегледа всички публикации подред. Разбира се, всичко това можеше да се избегне, като отидете в специална категория, наречена wordpress. Или, например, за тези, които се интересуват само от дизайн, блог раздел може да представлява интерес.

Ако се вгледате внимателно в заглавката на блога, можете да видите нещо като меню, където категориите на WordPress действат като раздели на проекта. Що се отнася до мен, това е доста удобен и визуален начин за разделяне на темите на записите.

В самия център на страницата ще видите форма за добавяне на нова категория. Тук трябва да посочите неговото заглавие (име), етикет (част от url връзката за CNC), родителска категория (ако има такава), а също така можете да зададете кратко описание. Родителската категория ви позволява да създавате секции в WordPress с няколко нива на влагане - например за категорията „WordPress“ в някой IT блог можете да добавите същите шаблони, плъгини и т.н.

От дясната страна на страницата с категории се показват всички категории на WordPress с възможност за редактиране или изтриване. За да извършите действия, просто преместете курсора на мишката върху името на определена категория, след което ще видите малко изскачащо меню.

Когато редактирате, ще видите един от информационните блокове, където можете да изберете една или повече категории за статията. Просто поставете отметки в квадратчетата до имената, които искате.

Тук можете да добавяте нови категории, като щракнете върху съответната връзка. Единственият недостатък на този механизъм е, че когато създавате, можете да посочите само името и родителската категория, докато за да зададете полето за етикет, ще трябва да отидете в секцията „Категории“ и да редактирате информацията там.

Освен това можете да редактирате категории за публикации в блогове чрез техния списък в менюто Публикации – Редактиране. Там, когато задържите курсора на мишката върху конкретна публикация, ще видите връзка „ Бързо редактиране" Кликнете върху него и вижте формата за редактиране:

Тук можете да промените категории, етикети и всичко допълнителна информацияспоред статията. Нещото е много удобно + работи без презареждане на страницата.

функция wp_list_categories за категория wordpress

Традиционно разглеждам не само въпроса за работа с определени елементи на системата, но и давам специални функцииза шаблони. Точно както говорих. Така че, за да се покаже списък с категории с връзки към тях, се използва wp_list_categories. Има редица аргументи:

  • show_option_all – показва връзка към всички категории, ако сте избрали списък като стил на показване.
  • orderby – сортиране за категории по ID, име (name), етикет (slug), брой публикации (count).
  • order – ред на сортиране (ASC – нарастващ, DESC – намаляващ).
  • show_last_updated – показва датата на последната актуализация.
  • стил – стил на проектиране: списък, разделяне през
    (няма).
  • show_count – показва броя на публикациите в категорията.
  • hide_empty – скриване на празни категории без публикации.
  • use_desc_for_title – използвайте описание за атрибута title във връзката.
  • child_of – показва само категории за дадената родителска категория.
  • емисия – показва връзка към емисия за категории.
  • feed_type – тип емисия.
  • feed_image – изображение за rss иконата.
  • exclude – изключва категориите от списъка и параметърът child_of автоматично се дезактивира.
  • exclude_tree – изключва цял клон на категория.
  • include е обратният параметър, който включва само посочените WordPress категории в списъка.
  • йерархичен – параметър за показване на подкатегории.
  • title_li – заглавие на списъка с категории.
  • брой – брой категории за показване (ако са твърде много).
  • echo – показва категории, по подразбиране е True.
  • дълбочина – определя броя нива за показване на подкатегориите.

Накрая ще дам няколко примера за използване на wp_list_categories. Първо, опцията от заглавката на този блог.

Тук е настроено показване на скрити категории, изключване на категории от списъка, празен ред за заглавието на блока, сортиране по брой статии и в низходящ ред (тоест имам най-много статии в раздела). Последният аргумент не замества описанието на категорията в заглавието на връзката.

Е, и още няколко прости ситуации. Използване на изключвания и включвания на категории.

Ако имате какво да добавите относно заглавията и категориите на WordPress, напишете в коментарите.

Актуализация: Може също да намерите този малък хак за полезен за . В WordPress по подразбиране заглавието на текста е дефинирано, нещо като „вижте всички публикации в категорията ....“, вместо това можете просто да оставите името на категорията - прочетете статията на връзката по-горе.

Връща масив от обекти, съдържащи информация за категории.

Параметрите, предадени на тази функция, са много подобни на параметрите, предадени на функцията wp_list_categories() и могат да бъдат предадени или като масив, или като низ на заявка: type=post&order=DESC.

✈ 1 път = 0,005625s = много бавно | 50 000 пъти = 11,98 s = бавно | PHP 7.1.11, WP 4.9.5

Използване на $categories = get_categories($args); Модел на използване $categories = get_categories(array("taxonomy" => "category", "type" => "post", "child_of" => 0, "parent" => "", "orderby" => "name" , "order" => "ASC", "hide_empty" => 1, "hierarchical" => 1, "exclude" => "", "include" => "", "number" => 0, "pad_counts" => невярно, // пълен списъкЗа параметри вижте описанието на функцията http://wp-kama.ru/function/get_terms)); if($categories)( foreach($categories as $cat)( // Данни в обекта $cat // $cat->term_id // $cat->name (Рубрика 1) // $cat->slug (rubrika - 1) // $cat->term_group (0) // $cat->term_taxonomy_id (4) // $cat->таксономия (категория) // $cat->описание (Текст на описание) // $cat-> родител (0) // $cat->count (14) // $cat->object_id (2743) // $cat->cat_ID (4) // $cat->category_count (14) // $cat-> category_description (Текст на описание) // $cat->cat_name (Рубрика 1) // $cat->category_nicename (rubrika-1) // $cat->category_parent (0) ) ) таксономия (ред)Името на таксономията, която ще се обработва. Добавен от версия 3.0.
По подразбиране: "категория"тип (ред)
  • публикация - категории за публикации (по подразбиране);
  • връзка - секции за връзки.
    По подразбиране: "post"
дете_на (ред)Вземете дъщерните категории (включително всички нива на влагане) на посочената категория. Параметърът указва идентификатора на родителската категория (категорията, чиито вложени категории искате да покажете). родител(номер)
Получава категории, чиято родителска категория е равна на идентификатора, посочен в параметъра. Разликата от child_of е, че ще бъде показано едно ниво на влагане.По подразбиране: "" (ред)

по поръчка

  • Сортиране на получените данни по определени критерии. Например по броя публикации във всяка категория или по имена на категории. Налични са следните критерии:
  • ID - сортиране по ID;
  • име - сортиране по име (по подразбиране);
  • slug - сортиране по алт. име (охлюв);
  • count - по броя на записите в категорията;

term_group - по група.

По подразбиране: "име" (ред)

ред

  • Посоката на сортиране, посочена в параметъра "orderby":
  • ASC - по ред, от най-малкото към най-голямото (1, 2, 3; a, b, c);

По подразбиране: "ASC"

Hide_empty (логично)

Дали да получавате празни категории (без записи):

  • 1 (вярно) - не получавайте празни,
  • 0 (невярно) - получаване на празни.

По подразбиране: вярно

Йерархичен (логично)Ако е зададено на true, резултатът ще включва празни дъщерни категории, чиито дъщерни категории имат (непразни) записи.
По подразбиране: вярноизключвам (низ/масив)Изключете всички категории от списъка. Трябва да посочите идентификатори на категории, разделени със запетаи или в масив. Ако този параметър е указан, параметърът child_of ще бъде заменен.
Получава категории, чиято родителска категория е равна на идентификатора, посочен в параметъра. Разликата от child_of е, че ще бъде показано едно ниво на влагане.включват (низ/масив)Избройте само посочените категории. Трябва да посочите идентификатори на категории, разделени със запетаи или в масив.
Получава категории, чиято родителска категория е равна на идентификатора, посочен в параметъра. Разликата от child_of е, че ще бъде показано едно ниво на влагане.номер родителЛимит. Броят категории, които ще бъдат извлечени. По подразбиране няма ограничения - всички категории ще бъдат извлечени. (логично) pad_counts
Ако подадете true, тогава числото, което показва броя публикации в родителските категории, ще бъде сумата от неговите публикации и публикации от дъщерни категории.

По подразбиране: невярно

Примери #1 падащ списък

За да създадем падащ списък с категории, можем да използваме друга функция, специална за тази цел, wp_dropdown_categories() :

Wp_dropdown_categories(array("hide_empty" => 0, "name" => "category_parent", "orderby" => "name", "selected" => $category->parent, "hierarchical" => true, "show_option_none" => __("Няма")));

с този подход обаче ще загубим известна гъвкавост при настройването на списъка, тъй като ще получим напълно оформен списък.

Следователно в някои случаи ще бъде по-логично да създадете падащ списък с помощта на функцията get_categories(). Ето един пример (приемайки, че трябва да покажем подкатегориите (децата) на категория 10):

#2 Списък с категории и техните описания

Този пример ще ни покаже как можем да покажем списък с връзки към категории, където непосредствено след всяка връзка ще има описание на категорията (посочена при създаване/редактиране на категория):
  • Бележки
Вижте: get_terms() Тип аргументи, които могат да бъдат променяни.
Списък на промените От версия 2.1.0
Въведено.
Заглавие: