Muž požadoval vyhledat položku php i. Vytvořte vlastní typ příspěvku (Custom Post Type) s vlastními kategoriemi (Custom Taxonomy)

SSY znamená „Siddha Samadhi Yoga“ (často rozšířeno jako „Jóga vědy o tichu“), kde Siddha znamená „něco (tj. znalost), co je dokázáno nebo dosaženo“, Samádhi znamená „stav, ve kterém je intelekt vyrovnaný“ a jóga znamená „spojení se svým vyšším já“.

SSY je základní znalost života. Naši starověcí rishiové formulovali jedinečný způsob tréninku zvaný Brahmopadesam, což je instrukce o vědě o nedělání a prožívání klidu uvnitř a hojnosti vně. Přináší zásadní změnu v pohledu na život a působí na jednotlivce pozoruhodnou zralost. SSY není nic jiného než současná verze této starověké vědy Brahmopadesam.

SSY jako vzdělávací program nabízí Life Yessence Academy (LiYA) a jedná se o vlajkový program této instituce. Jako vlajkový program se stal synonymem pro název organizace. Tréninky těchto skvělých znalostí vyučují na mnoha místech světa učitelé LiYA. Indická kapitola LiYA se nazývá Rishi Samskruti Vidya Kendra (RSVK).

„Já jsem tělo“ je první pojem, který zabíjí probuzení. SSY je proces
Vstoupit do Samádhi, stavu naprosté odpoutanosti. "
-Guruji

Hlavní úkoly:

  • implementujte vyhledávání tak, že po zadání vyhledávacího dotazu do řádku se výsledky vyhledávání zobrazí pod tímto řádkem
  • požadavek na výsledek by se měl objevit až po zadání vyhledávacího dotazu

Dobře, jdeme!

Přibližné rozložení samotného bloku s vyhledávacím řádkem a přezdívkou div, kam přidáme výsledky vyhledávání:

Protože Vyhledávání je dostupné v záhlaví webu, přidejte odpovídající vyhledávací skripty a styling výsledků:

//zkrátit hledání: $APPLICATION->AddHeadScript("/search/ajax_search.js"); $APPLICATION->AddHeadScript("/search/jquery.mCustomScrollbar.js"); $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/ajax_search.css"); $APPLICATION->SetAdditionalCSS(SITE_TEMPLATE_PATH . "/css/jquery.mCustomScrollbar.min.css");

Nyní se podívejme, co je v našem ajax_search.js:

Funkce get_result ()( //vymazat výsledky vyhledávání $("#search_result").html(""); //dosud neobdrželi výsledky vyhledávání - zobrazit preloader $("#search_result").append(" "); $.ajax(( typ: "POST", url: "/search/ajax_search.php", data: "q="+q, dataType: "json", success: function(json)( //clear preloader $("#search_result").html(""); $("#search_result").append(""); //přidejte každý prvek pole json do prvku div s class="live-search" (); rozvržení, které můžete použít) $.each(json, function(index, element) ( $("#search_result").find(".live-search").append(""+element.TITLE+""+prvek. BODY_FORMATED+" "); //konzola.log (prvek.BODY_FORMATED )); 0; var q = ""; $(dokument).ready(funkce() ( $("#q").keyup(funkce() ( q = this.value; clearTimeout(timer); timer = setTimeout(get_result, 1000) ; $("#reset_live_search").click(function() ( $("#search_result").html(""); ));

keyup funkci nazýváme funkci get_result(), která ve skutečnosti vyplní přezdívku div s id="search_result" v Ajaxu.

mCustomScrollbar je pouze stylingové volání (můžete jej vypnout).

Data přijímáme z /search/ajax_search.php ve formátu JSON.

S komponentou JS je vše jasné, nyní se podívejme, co se stane v ajax_search.php:

V tomto případě se vyhledávání provádí metodou Search třídy Bitrix CSearch. V PARAM2 píšeme, ve kterém informačním bloku hledáme. Výsledky hledání vložíme do pole $result. Upozorňujeme, že $res[‘ITEM_ID’] může obsahovat buď položku, nebo sekci. V závislosti na tom, co jsme našli, do $result_item[‘BODY_FORMATED’] vložíme buď název sekce, nebo část textu z nalezeného prvku informačního bloku.

Vytvořte vlastní typ příspěvku (Custom Post Type) Články s vlastními kategoriemi (Custom Taxonomy) Category Articles.

V mém případě jsou všechny standardní záznamy Produkty, takže články zobrazíme prostřednictvím vlastních záznamů.

V souboru funkcí functions.php registrujeme vlastní typ příspěvku Články:

Funkce wptp_create_post_type() ( $labels = array("name" => __("Články"), "singular_name" => __("Články"), "add_new" => __("Nový článek"), "add_new_item" => __("Přidat nový článek"), "edit_item" => __("Upravit článek"), "new_item" => __("Nový článek"), "view_item" => __("Zobrazit článek"), "search_items" => __("Vyhledat články"), "not_found" => __("Nenalezeny žádné články"), "not_found_in_trash" => __("V koši nebyly nalezeny žádné články"), "štítky" =>). $labels, "has_archive" => true, "public" => true, "hierarchical" => false, "menu_position" => 5, "supports" => array("title", "editor" , "excerpt", "custom-fields", "thumbnail"),); register_post_type("články", $args ) add_action("init", "wptp_create_post_type");

Pokud chcete, aby se standardní kategorie zobrazovaly ve vlastních příspěvcích, propojte je s taxonomií kategorií:

"taxonomies" => array("category"),

Pokud také vytváříte vlastní taxonomie pro vlastní příspěvky, musíte je propojit s vytvořenými taxonomiemi, pokud vezmeme příklad níže, budou to články_kategorie

"taxonomies" => array("articles_category"),

Poté pro vlastní typ příspěvku Články zaregistrujeme taxonomie ‚Kategorie článku‘, takže různé příspěvky mohou patřit do různých kategorií.

Funkce wptp_register_taxonomy() ( register_taxonomy("kategorie_článků", "články", array("labels" => array("name" => "Kategorie článků", "singulární_název" => "Kategorie článku", "hledané_položky" => " Hledat kategorie článků", "all_items" => "Všechny kategorie článků", "edit_item" => "Upravit kategorie článků", "update_item" => "Aktualizovat kategorii článku", "add_new_item" => "Přidat novou kategorii článku", "new_item_name" => "Nový název kategorie článku", "menu_name" => "Kategorie článku", "hierarchický" => true, "sort" => true, "args" => array("orderby" => "term_order"), "show_admin_column" => true));

Pro vlastní taxonomii můžete slimáka změnit na krásnějšího, takže to nebude article_category , ale musíte se ujistit, že takoví slimáci již neexistují na jiných stránkách nebo příspěvcích, jinak nastanou problémy:

"rewrite" => array("slug" => "blog"),

Při změně slimáků musíte aktualizovat nastavení „Permanent Links“ na panelu administrátora, jinak se místo požadované stránky zobrazí chyba 404.

Další příklady naleznete zde. Pomohlo ale dát celý tento kód do pořádku, za což jsem autorovi velmi vděčný.

Soubor single.php je zodpovědný za vzhled vlastního příspěvku, ale pro změnu vzhledu vlastního příspěvku můžete vytvořit soubor single-(post_type).php - v mém případě to bude single-articles.php s svůj vlastní obsah.

Nyní musíte na stránce zobrazovat vlastní příspěvky. Ve výchozím nastavení je za zobrazení archivu vlastních příspěvků zodpovědný soubor index.php. Můžete však vytvořit soubor, který bude zodpovědný za zobrazování vlastních položek ve vaší taxonomii.

Možnost 1 je nejsprávnější. Záznamy v taxonomii zobrazujeme stejným způsobem jako v běžné kategorii.

K tomu si vytvořte soubor taxonomie-(taxonomie).php - v mém případě to bude taxonomie-articles_category.php a v něm zobrazíme obvyklý cyklus jako u standardních záznamů v kategorii:

V souboru tax-item.php zobrazujeme údaje, které potřebujeme z každého příspěvku získat, například název, odkaz na příspěvek, náhled a úryvek.

V souboru pagination.php zobrazujeme stránkování v tomto formátu.

Cyklus je neměnný, stránkování funguje skvěle. Toto je nejlepší možnost pro zobrazení vlastních taxonomií.

Možnost 2 – pokud neexistují žádné vlastní taxonomie, můžete jednoduše získat všechny vlastní příspěvky ve formě archivu

K tomu si v šabloně vytvoříme soubor archive-(post_type).php - v mém případě to bude archive-articles.php , ve kterém stejně jako v taxonomii zobrazíme pravidelnou smyčku, jen místo Název taxonomie zobrazujeme název vlastního typu příspěvku:

S touto možností, pokud nebyla vytvořena archivní stránka pro vlastní příspěvek, můžete získat seznam všech vlastních příspěvků pomocí přímého odkazu BLOG_URL?post_type=(post_type) nebo v mém případě http://site.com/ články/ .

Možnost 3. Jednoduše zobrazte všechny vlastní položky článků na stránce s danou šablonou

get_template_part("zahrnout/daňovou-položku"); – v souboru tax-item.php zobrazím obsah příspěvku, který potřebuji k zobrazení příspěvků uvnitř smyčky (název, miniatura, datum, citace atd.)

Tato možnost zobrazí všechny články na stránce bez ohledu na taxonomie (kategorie).

A pokud potřebujeme zobrazit každou kategorii zvlášť s vlastními novinkami, tak využijeme první výše popsanou možnost.

Jak již bylo řečeno, pokud používáte plugin Yoast SEO a používáte jeho drobky:

Když pak v nastavení pluginu v „Taxonomie zobrazit ve strouhance pro typy příspěvků“ vyberete taxonomii „Kategorie článků“, ve strouhance se vám zobrazí odkaz na kategorii, do které Novinky patří, s dalšími možnostmi zobrazení vlastních příspěvků , to nešlo udělat.

Od autora: Zdravím vás přátelé. V tomto článku budeme pokračovat v implementaci živého vyhledávání webu. Co je to živé vyhledávání? Narazíte na to neustále, když něco hledáte na Googlu nebo Yandexu. Jakmile začnete psát vyhledávací dotaz, vyhledávač vám okamžitě začne nabízet možnosti, ze kterých si jen vyberete tu nejvhodnější. Pohodlná věc, ne? Zkusme něco podobného implementovat.

Zdrojové soubory aktuálního článku si můžete stáhnout z . První část článku najdete na.

V první části jsme tedy připravili databázi, která bude sloužit pro živé vyhledávání, a také jsme do vyhledávacího pole na naší stránce připojili widget Autocomplete knihovny uživatelského rozhraní jQuery. Widget zatím pracuje s testovacími daty, ale nyní to napravíme.

Nejprve si uveďme jiný zdroj dat pro widget, tím bude řekněme soubor search.php, který také potřebujeme vytvořit.

$(funkce())( $("#hledat").autocomplete(( zdroj: "hledani.php", )); ));

Nyní do vyhledávacího pole napíšu libovolný znak a uvidím, co se stane v konzole prohlížeče.

Jak vidíte, požadavek GET je odeslán s parametrem term, jehož hodnotou je řetězec zadaný do vyhledávacího pole. V tomto případě se vše děje asynchronně, bez opětovného načítání stránky, tzn. Používá se AJAX.

Skvělé, nyní zbývá pouze přijmout příchozí požadavek na vyhledávání a poskytnout na něj odpověď. Chcete-li to provést, budete muset vytvořit připojení k databázovému serveru a napsat jednoduchý kód, který na požádání přijímá data z databáze. Kód v souboru search.php bude vypadat nějak takto:

$db = mysqli_connect("localhost", "root", "", "world") or die("Žádné připojení k databázi"); mysqli_set_charset($db, "utf8") or die("Není nastaveno kódování připojení"); /** * vyhledávání automatického doplňování **/ funkce search_autocomplete())( global $db; $search = trim(mysqli_real_escape_string($db, $_GET["term"])); $query = "SELECT Name FROM city WHERE Name LIKE " %($search)%" LIMIT 10"; $res = mysqli_query($db, $query); $result_search = array(); while($row = mysqli_fetch_assoc($res))( $result_search = array("label " => $row["Name"]); return $result_search; ) if(!empty($_GET["term"]))( $search = search_autocomplete(); exit(json_encode($search)); )

$ db = mysqli_connect ("localhost" , "root" , "" , "world" ) or die ("Žádné připojení k databázi" );

mysqli_set_charset($db, "utf8") or die("Není nastaveno kódování připojení");

* hledat automatické doplňování

function search_autocomplete() (

global$db;

$search = trim(mysqli_real_escape_string($db, $_GET["term"]));

$res = mysqli_query($db, $dotaz);

$vysledek_hledani = pole();

while ($row = mysqli_fetch_assoc($res)) (

$result_search = array("label" => $row["Name"]) ;

return $result_search;

if (! prázdný ($ _GET [ "term" ] ) ) (

$search = search_autocomplete();

exit(json_encode($search));

Upozorňujeme, že funkce search_autocomplete, která přijímá data na vyžádání, musí tato data vracet v určitém formátu, musí to být pole s klíči štítků a hodnotami nalezených měst. Po zavolání funkce je třeba data převést do formátu JSON.

Zbývá zkontrolovat fungování našeho živého vyhledávání. Chcete-li to provést, stejně jako minule, zadejte pouze jedno písmeno - a:

Velký! Jako odpověď jsme obdrželi tucet měst, jejichž názvy obsahovaly zadané písmeno. Pokud budeme pokračovat ve psaní názvu, změní se seznam možností, tzn. s každým dopisem bude zaslán nový požadavek AJAX.

Nejlepší způsob, jak udržet uživatele na webu, je nechat ho najít to, co hledá. Pokud pro to vytvoříte vhodný systém, úroveň preference vašeho webu poroste a uživatel se určitě vrátí, aby našel to, co ho zajímá.

Ukážu vám, jak vytvořit jednoduchý, ale funkčně efektivní vyhledávací formulář, který bude sloužit k vyhledávání článků na webu. Výsledky se na stránce objeví bez opětovného načítání, což je bezpochyby nejlepší způsob prezentace informací.

Vytvořím 2 soubory: search.php, které budou obsahovat HTML a JavaScript. Druhý soubor, do_search.php, bude obsahovat kód PHP. Začneme vytvářet první soubor:

PHP, ukázka vyhledávání jQuery $(function() ( $(".search_button").click(function() ( // získání toho, co uživatel napsal var searchString = $("#search_box").val(); // formulář řetězec dotazu var data = "search="+ searchString // pokud vyhledávací řetězec není prázdný if(searchString) ( // vytvoří požadavek ajax $.ajax(( typ: "POST", url: "do_search.php",); data: data, beforeSend: function(html) ( // se spustí před zavoláním požadavku $("#results").html(""); $("#searchresults").show(); $(". word").html (searchString); ), success: function(html)( // se spustí po obdržení výsledků $("#results").show(); $("#results").append(html) ; ) ) návrat false ));
Zkuste zadat slovo ajax

V tomto souboru jsme vytvořili běžný HTML formulář, který odesílá požadavek POST na back-end - soubor do_search.php.

Kód PHP obsahuje komentáře, takže můžete snadno pochopit, jak skript funguje. Pokud jsou v databázi shody, zobrazíte je svému uživateli a tučně zvýrazníte slova, která uživatel hledal.

Pojďme tomu všemu dát trochu CSS:

Body( font-family:Arial, Helvetica, sans-serif; ) *( margin:0;padding:0; ) #container ( margin: 0 auto; width: 600px; ) a ( color:#DF3D82; text-decoration: none ) a:hover ( color:#DF3D82; text-decoration:underline; ) ul.update ( list-style:none;font-size:1.1em; margin-top:10px ) ul.update li( height:30px; border-bottom:#dedede solid 1px; text-align:left;) ul.update li:first-child( border-top:#dedede solid 1px; height:30px; text-align:left; ) #flash ( margin- top:20px; text-align:left; ) #searchresults ( text-align:left; margin-top:20px; display:none; font-family:Arial, Helvetica, sans-serif; velikost-fontu:16px; barva: #000; ) .word ( font-weight:bold; color:#000000; ) #search_box ( padding:4px; border:solid 1px #666666; width:300px; height:30px; font-size:18px;-moz- border-radius: 6px;-webkit-border-radius: 6px; .search_button ( border:#000000 solid 1px; padding: 6px; color:#000; font-weight:bold; font-size:16px;-moz- border-radius: 6px;-webkit-border-radius: 6px).found(font-weight: bold; styl písma: kurzíva; barva: #ff0000; ) h2 (pravý okraj: 70px; )

Takže jste se naučili, jak vytvořit jednoduchý vyhledávací formulář, který funguje bez opětovného načítání stránky. Doufám, že se vám lekce líbila.




Nahoru