Format HTML. Heqja e versionit WP

HitmanPro zbulon, identifikon dhe heq viruset, spyware, Trojans, rootkits dhe malware të tjerë.

Shërbimi përdor motorin e vet të analizës së sjelljes dhe ekzaminimit të grupeve të skedarëve, si dhe teknologjinë inovative të skanimit të cloud duke përdorur bazat e të dhënave antivirus SophosLabs, Kaspersky dhe Bitdefender. Skaneri HitmanPro zbulon dhe heq kërcënimet e mundshme me qëllim të keq me ndikim minimal në performancën e sistemit.

* HitmanPro është një skaner antivirus falas. Funksioni i fshirjes është i disponueshëm për 30 ditë pa pagesë.

Karakteristikat kryesore të HitmanPro

A mund të përballojë antivirusi juaj kërcënimet më të fundit?

Një burim i ri malware mund të gjendet kudo, madje edhe në faqet e besuara. Këto kërcënime mund të përdorin teknika të ndryshme për të shmangur mbrojtjen antivirus. HitmanPro është krijuar për të punuar me mbrojtjen antivirus dhe përdor analiza të thella të sjelljes për të gjetur dhe neutralizuar kërcënimet e ditës zero - kërcënime moderne që përpiqen të shmangin zbulimin.

Zbulimi i sjelljes + përvojë kolektive

Në vend që të përdorë përkufizimet e nënshkrimit për të identifikuar malware, HitmanPro shqyrton sjelljen e çdo skedari për aktivitete me qëllim të keq. Kjo qasje i jep HitmanPro aftësinë për të bllokuar malware dhe viruse më të fundit tinëzare përpara se të identifikohen. HitmanPro gjithashtu lidhet me bazën e të dhënave të malware SophosLabs për të zbuluar më shumë forma të kërcënimeve të reja dhe për t'i gjurmuar ato në burimin e tyre.

Nuk ka instalim

HitmanPro merr 12 megabajt dhe nuk kërkon instalim. Programi mund të lansohet direkt nga desktopi juaj, disku USB, CD/DVD ose ruajtja në distancë. Edhe nëse antivirusi juaj kontrollohet nga malware ose ransomware, HitmanPro do të funksionojë siç duhet dhe do të jetë në gjendje të zbulojë dhe heqë kërcënimet.

Restaurim gjithëpërfshirës

HitmanPro ju lejon të hiqni kërcënimet e vazhdueshme që kanë fituar një terren në sistemin operativ dhe zëvendëson burimet e sistemit të infektuar me versione të sigurta, origjinale, ndërkohë që vazhdon të bllokojë përpjekjet për ri-infektim.

Çmimet e testimit

Transferimi i të dhënave përmes grupit $_SESSION lejohet një herë; të dhënat e transferuara fshihen menjëherë. Kjo mund të jetë e dobishme, për shembull, kur "kthimi" i të dhënave të futura në një modul tjetër në një formular.

Është mirë kur të gjitha funksionet e shërbimit janë të kombinuara në një modul, të cilin modulet kryesore e lidhin përmes direktivës request_once. Ne do ta quajmë modulin tonë të funksioneve të shërbimit funksion.php dhe, përveç metodave të përmendura trimall dhe magjike, do të përfshijmë këtu funksionet e mëposhtme:

  • read() - do të lexojë bazën aktuale të të dhënave dhe do të kthejë një grup të dhënash;
  • write($a) - do të shkruajë një grup rekordesh $a në një skedar;
  • get_index_by_name ($a,$name) - do të kërkojë hyrjen përkatëse me emrin $name dhe do të kthejë numrin e tij (nga zero) ose vlerën -1 nëse hyrja nuk gjendet. Kjo është e dobishme për të bërë dallimin midis shtimit të një hyrje të re dhe redaktimit të një ekzistuese.

Përveç kësaj, skedari i funksioneve do të përfshijë skedarin e konfigurimit dhe do të nisë seancën - këto aftësi mund të nevojiten nga çdo modul që e lidh atë.

Skedari Function.php

Vini re se funksioni i leximit filtron gjithashtu grupin e rekordit nga vargjet boshe (vetëm në rast se, në përgjithësi, ato nuk duhet të ndodhin), dhe trimall fillimisht do të zëvendësojë çdo varg jo bosh të përcaktuesve me një hapësirë ​​të vetme (preg_replace i dytë) dhe pastaj hiqni kufijtë e mundshëm shtesë në fillim dhe në fund të rreshtit të mbetur (preg_replace i parë).

Ekziston gjithashtu një nuancë me funksionin e leximit për sa i përket pajtueshmërisë së kodit. Meqenëse linja e saj e vetme përmban një funksion anonim, supozohet se përdoret versioni PHP jo më i ulët se 5.3. Nëse është e nevojshme, zëvendësoni kodin më poshtë me një ku funksioni i filtrimit është i emërtuar ose nuk përdoret fare, si këtu:

Funksioni i lexuar () ( $str=@file_get_contents (FILENAME); $a=explode("\n",$str); ktheje $a; )

Transmetimi i saktë i vargut Unicode në shkronja të vogla është gjithashtu i rëndësishëm (shih mb_strtolower në kod). Ne nuk përdorim lokalizimin këtu.

Duket se është koha për të shkruar skedarin kryesor index.php. Ai do të zgjidhë detyrat e mëposhtme:

  • shfaq një formular për shtimin e një hyrje të re, e cila përpunohet nga moduli add.php;
  • pranë formularit shtues do të shfaqim komanda shtesë - duke pastruar formularin duke "vetë-thirrur" një skript pa parametra (butoni nuk do të funksionojë këtu, sepse nuk transmeton të dhëna në server) dhe një lidhje për të hyrë në renditjen e regjistrimeve moduli me emrin sort.php;
  • marrin rezultatet e punës së tyre nga modulet e tjera në formën e një ndryshoreje numerike $status dhe shfaqin mesazhet përkatëse (array $status_msg). Vlera $status e barabartë me zero do të pranohet si parazgjedhje, ajo korrespondon me daljen e një ndihme të shkurtër rreth funksionimit të programit;
  • nëse baza e të dhënave nuk është bosh, tregoni të dhënat e saj dhe siguroni një kalim në redaktim ose fshirje.

Për të mos e mbingarkuar tabelën me butona dhe lidhje shtesë, le të klikojmë me emër duke shkuar për të redaktuar hyrjen duke përdorur modulin edit.php dhe duke klikuar sipas fushës "Numri" do të korrespondojë me fshirjen e një hyrje nga moduli del.php.

Ja se si duket me disa hyrje të shtuara:

Shfaqja e skriptit "Mini-DB në një skedar teksti"

skedar index.php

Tani le të kalojmë te modulet që mungojnë. add.php duket se ka një punë të thjeshtë - merrni variablat $name dhe $number nga index.php dhe shkruajini ato në një skedar. Sidoqoftë, moduli duhet të kontrollojë që të dhënat jo boshe t'i kalohen atij dhe gjithashtu të jetë në gjendje të dallojë situatën kur një emër që ekziston tashmë në bazën e të dhënave futet nga futja e një rekordi të ri (shiko nëse ($id>- 1) ( ... ) tjetër ( ... ) në kod). Në rastin e fundit, hyrja shtohet gjithmonë në fund, sepse do të ketë një modul për renditjen e vargjeve sipas alfabetit.

Është gjithashtu e rëndësishme që vargu $name, "i kaluar" përmes mbajtësit të parametrave, të mos ketë karaktere "kritike" të shënimit si ", ",< и >, dhe në grupin $a të lexuar nga skedari i të dhënave, të gjitha rreshtat janë "siç janë" dhe 123 nuk do të gjendet nëse $name është kthyer në 123 pas përpunimit. Prandaj, funksionit të kërkimit të rekordeve, të cilin ne e quajmë get_index_by_name, i kalohet një varg i konvertuar "prapa" në formën e tij origjinale duke përdorur funksionin standard htmlspecialchars_decode (i disponueshëm në PHP 5.1). Në të njëjtën formë, vargu kthehet në index.php përmes grupit $_SESSION. Kjo do të ofrojë lehtësi - pasi të futni një hyrje të re, të dhënat e tij do të mbeten në formë dhe do të jetë e mundur të futni një hyrje tjetër, paksa të ndryshme në emër ("Ivanova" pas "Ivanov").

Epo, kthimi nga moduli në modul është absolutisht standard - përmes funksionit standard të kokës. Mos harroni se mund të përdoret vetëm nëse moduli nuk ka nxjerrë ende asgjë në shfletuesin.

skedar add.php

Tani për redaktimin, ai do të zbatohet në edit.php. Forma e redaktimit është pothuajse e njëjtë me formularin e shtimit, thjesht ishim shumë dembel për të krijuar një funksion të veçantë për shfaqjen e formularit. Më e rëndësishmja, vetë moduli do të jetë një përpunues i të dhënave të transmetuara përmes formularit të redaktimit, dhe për këtë arsye duhet të dallojë situatën kur sapo thirret nga ajo kur përdoruesi klikoi "Ruaj". Detyra e fundit është të kontrolloni

Nëse (!empty($_POST["dorëzo"]) && !empty($name) && isset($number) && isset($id)) (

duke përcaktuar nëse butoni është shtypur dhe të gjitha të dhënat janë transferuar. Dega e dytë -

Përndryshe nëse (isset($a[$id])) (

është menduar për situatën kur ka një hyrje në grupin $a, numri i të cilit kalon në skript dhe ai duhet të redaktohet. Numri i hyrjes ruhet në një fushë të fshehur HTML.

Redaktimi i skedarit.php

Moduli i heqjes së regjistrave del.php do të jetë mjaft i thjeshtë, gjithçka që i nevojitet është të marrë një rekord të vlefshëm $id (numri i elementit në grupin $a), të hiqni elementin përkatës nga grupi, të rishkruani skedarin dhe të ktheheni në modulin kryesor faqe.

Skedari del.php

Më në fund, moduli i renditjes sort.php do të prezantojë një problem të ri - si të renditni vargjet e Unicode në mënyrë alfabetike pa bërë dallimin midis shkronjave të mëdha dhe të vogla? Renditja "e drejtpërdrejtë" duke përdorur funksionin e renditjes standarde nuk është e përshtatshme - ai konsideron një shkronjë të vogël dhe një shkronjë të madhe si karaktere të ndryshme. Ne nuk vendosëm vendndodhjen, veçanërisht pasi nuk ka asnjë formë të vetme hyrjeje për të gjitha sistemet operative për ta instaluar atë.

Le të kufizohemi në zgjedhjen e përdorimit nga e gjithë shumëllojshmëria e funksioneve për renditjen e grupeve me një funksion të personalizuar për krahasimin e elementeve.

Krahasimi "i drejtpërdrejtë" i përdorur i vargjeve Unicode me një karakter, duket se nuk është plotësisht i saktë, por strcmp krahason vargjet byte-byte dhe nuk është i përshtatshëm për ne, por në përgjithësi krahasimi është i saktë. ndonjë vargjet në Unicode është një detyrë shumë e vështirë... Gjithçka funksionoi për mua në sistemin për rusisht dhe anglisht, për shembull, pas renditjes mora renditje natyrale të fjalëve, si p.sh.

Abba, Avka, avklit, basya, Bobi, Bobik, bobik, Bobina

Renditja e skedarëve.php

Gjithçka që duhet të bëjmë është të krijojmë një skedar në dosje me emrin .htaccess, ku do të vendosim kodimin e paracaktuar në Unicode dhe do të tregojmë direktivat për vendosjen e kuotave për sitin, kështu që...

Në të njëjtën dosje, krijoni një skedar bosh (0 byte) data.txt (opsionale nëse të gjitha të drejtat janë konfiguruar).

File.htaccess AddDefaultCharset utf-8 php_flag magic_quotes_gpc off php_flag magic_quotes_runtime off php_flag magic_quotes_sybase off

Ju mund të shihni se çfarë ndodhi dhe të më njoftoni për problemet që gjetët, e shkrova skenarin shumë shpejt, në 2 hapa, dhe mund të mos kisha menduar diçka :)

Mbledhja e fragmenteve (kodeve) të dobishme. Kodet janë krijuar për detyra të zakonshme kur redaktoni ose krijoni një temë.

Në mënyrë tipike, i gjithë ky kod duhet të vendoset në skedarin functions.php të temës. Ose, mund të krijoni një skedar individual.php, të vendosni kodin atje dhe ta lidhni skedarin me funksionet.php të temës si kjo:

// lidh copat e nevojshme_once "functions-snippets.php";

Paraqitja CSS për redaktorin TinyMCE

Lidh skedarin e stileve me redaktorin e WordPress TinyMCE. Në këtë mënyrë ne mund të vendosim stilet e redaktuesit në panelin e administratorit dhe, kur redaktoni një postim, të shohim se si duket në pjesën e përparme.

// Stilet për redaktorin TinyMCE // Duhet të krijoni një skedar "editor-styles.css" në dosjen e temave add_action("current_screen", "my_theme_add_editor_styles"); funksioni my_theme_add_editor_styles() ( add_editor_style("editor-styles.css"); )

CSS për faqen e hyrjes

## CSS për faqen e identifikimit ## Duhet të krijoni një skedar "wp-login.css" në dosjen e temës add_action("login_head", "my_loginCSS"); funksioni my_loginCSS() (echo ""; )

CSS për panelin e administratorit

Përfshin një skedar stili në të gjitha faqet e panelit të administratorit. Kështu, ju mund të modifikoni dhe plotësoni me lehtësi stilet e panelit të administratorit.

## Stilet CSS për panelin e administratorit. Ju duhet të krijoni një skedar "wp-admin.css" në dosjen e temave add_action("admin_enqueue_scripts", "my_admin_css", 99); funksioni my_admin_css())( wp_enqueue_style("my-wp-admin", get_template_directory_uri() ."/wp-admin.css"); )

Heqja e shiritit të administratorit nga pjesa e përparme

Shiriti i administratorit mund të pengojë kur tema përdor blloqe fikse (lundruese). Në raste të tilla, ndonjëherë është më e lehtë të hiqni këtë shirit.

## Heq shiritin e administratorit nga pjesa e përparme add_filter("show_admin_bar", "__return_false"); ## Aktivizo mbështetjen e miniaplikacioneve. Shto një zonë për miniaplikacionet if(function_exists("register_sidebar"))( register_sidebar(array("before_widget" => "", "after_widget" => "", "fore_title" => "", "pas_title" => "" , ));)

Aktivizimi i mbështetjes së menusë me porosi

Regjistron një zonë (vendndodhje) për një menu dhe mundëson mbështetjen e menusë. Pas instalimit të këtij kodi në panelin e administratorit, do të jetë e mundur të krijohen meny të personalizuara dhe t'i bashkëngjitni ato në zonat e krijuara nga ky kod. Në një shabllon menyje, ai shfaqet nga funksioni wp_nav_menu().

## Shtoni menytë e personalizuara register_nav_menus(array("main" => "Menyja kryesore", "in_footer" => "Menyja në fund"));

Shtimi i lidhjeve në burimin RSS të postimeve dhe komenteve

Imazhi i personalizuar i sfondit ose sfondi ## Aktivizon mundësinë për të vendosur një imazh të sfondit nga paneli i administratorit add_theme_support("sfondi i personalizuar");

Si rezultat, kodi do të dalë:

body.sfondi i personalizuar (ngjyra e sfondit: #bdd96e; )

Përfshirja e kodeve të shkurtra në miniaplikacionin Tekst

Shumë shtojca përdorin kode të shkurtra, por jo të gjitha kanë miniaplikacione. Në këtë rast, do të ishte e përshtatshme të përdorni kodin e shkurtër të shtojcës në miniaplikacionin "Text".

## Shortkode në miniaplikacionin "Text" if(! is_admin())( add_filter("widget_text", "do_shortcode", 11); )

Tekst i rastësishëm si parazgjedhje në fushën e përmbajtjes në zonën e administratorit

Kur krijoni një hyrje të re (postim ose faqe), ndonjëherë është e përshtatshme të keni disa shënime atje, duke shpjeguar se si dhe çfarë të shkruani. Për ta bërë këtë, mund të futni tekstin e paracaktuar në përmbajtje:

## Tekst i paracaktuar i rastësishëm për redaktuesin add_filter("përmbajtje_default", "writing_encouragement_func"); funksioni write_encouragement_func($content) ( global $post_type; // Tekste për redaktorin, lloji i postimit if($post_type == "post")( $array = array("Disa mesazh", "Disa mesazh", ); ktheni $ array[ array_rand($array) ];) // Tekste për redaktuesin, faqja e llojit të postimit tjetër ( $array = array("Disa mesazh", "Disa mesazh",); ktheje $array[ array_rand ($array) ]; ) )

Ndryshimi i numrit të hyrjeve në faqen e kërkimit

Si parazgjedhje, faqja e kërkimit tregon të njëjtin numër hyrjesh në faqe si diku tjetër, siç përcaktohet në cilësimet.

Ky shembull tregon se si të shfaqen 100 regjistrime në një faqe.

## ndryshoni sasinë e postimeve në faqen e kërkimit - vendosni këtu në 100 add_action("pre_get_posts", "search_results_per_page_func"); funksioni search_results_per_page_func($query) (// pyetje në faqen e kërkimit if(! is_admin() && $query->is_main_query() && $query->is_search())( $query->set("posts_per_page", 100) ;) ktheni $query;)

Përcakton sa fjalë duhet të jenë në një citat, i cili zakonisht shfaqet në faqet e arkivuara të postimeve (kategori, etiketa). Kuota del nga funksioni the_excerpt().

## Ndryshimi i gjatësisë së kuotës add_filter("gjatësia_excerpt", "custom_excerpt_length_func"); funksioni custom_excerpt_length_func($length) (kthimi 20; // numri i fjalëve)

Heqja e fushave nga një profil në panelin e administratorit: AIM, Yahoo IM, Jabber ## heq fushat nga profili: AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "remove_contactmethod"); funksioni remove_contactmethod($contactmethods) ( unset($contactmethods["aim"]); unset($contactmethods["jabber"]); unset($contactmethods["yim"]); kthe $contactmethods; ) Shtimi i fushave në një profil në admin: facebook, twitter ## Shton fushat në profil: AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "add_contactmethod"); funksioni add_contactmethod($contactmethods) ( $contactmethods["twitter"] = "Twitter"; $contactmethods["facebook"] = "Facebook"; return $contactmethods; ) Shtimi i klasës has_sidebar në etiketë nëse ka një shirit anësor

Në mënyrë që ky hak të funksionojë, etiketa e temës duhet të përdorë etiketën e shabllonit body_class(), siç është zakon.

## Shtimi i klasës `has_sidebar` në etiketën `` nëse ka një sidebar add_filter("body_class", "has_sidebar_func"); funksioni has_sidebar_func($classes)( if(is_active_sidebar("sidebar"))( // shtoni një klasë $classes = "has_sidebar"; ) ktheni $classes; )

Shtimi i një widget në tastierë

Ndonjëherë mund të jetë e dobishme të shtoni një miniaplikacion në panelin e administratorit për të vendosur informacione të rëndësishme në lidhje me temën aktuale.

## Miniaplikacion i personalizuar në tastierën në panelin e administratorit add_action("wp_dashboard_setup", "my_custom_dashboard_widgets"); funksioni my_custom_dashboard_widgets() ( wp_add_dashboard_widget("custom_help_widget", "Theme Notes", "custom_dashboard_help"); ) funksion custom_dashboard_help() (echo "

Mirësevini në temën "Tema ime"! Këtu janë disa shënime për këtë temë.";)

Ne marrim këtë widget:

Përfshirja e një skenari përgjigjeje komenti

Ky skript lëviz formularin e komentit kur klikoni në butonin "Përgjigju".

## Lidhja e skriptit të përgjigjes së komentit add_action("wp_footer", "enable_threaded_comments"); funksioni enable_threaded_comments())( if(is_singular() && comments_open() && get_option("thread_comments")) wp_enqueue_script("comment-reply"); )

Fotografitë Aktivizoni fotografitë e postimeve

Si parazgjedhje, postimet nuk kanë një bllok ku mund të vendosni një miniaturë postimi. Që një bllok i tillë të shfaqet, duhet të aktivizohet. Duhet të aktivizoni mbështetjen e miniaturave. Kjo bëhet shumë thjesht:

## Aktivizimi i miniaturave të postimeve add_theme_support("post-miniaturë"); set_post_thumbnail_size(200, 200, e vërtetë); // Miniaturat normale të postimeve

Krijimi i madhësive shtesë të miniaturës së ndërmjetme

Kur ngarkoni një imazh, krijohen madhësi shtesë për të - miniaturë. Ju lehtë mund të shtoni dimensionet tuaja në ato themelore - ato arbitrare.

## Krijimi i madhësive të ndërmjetme të miniaturës if(funksioni_exists("add_image_size"))( add_image_size("mysize-horizont", 300, 200, true); add_image_size("mysize-vertical", 400, 500, true); )

Për të marrë madhësinë e regjistruar, përdorni funksionin:

Shtimi i një miniaturë në një burim RSS

Ky kod shton një miniaturë postimi në krye të furnizimit RSS.

## Shtimi i një miniaturë në RSS feed add_filter("the_excerpt_rss", "add_thumbnail_to_feed"); //add_filter("the_content_feed", "add_thumbnail_to_feed"); ( style" => "margin-right:15px;")); $content = $img . $content; ktheje $content;)

Anulo mbështjelljen e imazheve në një etiketë

Në përmbajtje

Kur shfaqni përmbajtje në një temë duke përdorur the_content() , funksioni wpautop() aktivizohet dhe si rezultat nëse është në një vijë të veçantë, mbështillet

Ato. ishte u bë .

Ky shembull tregon se si të hiqni këtë sjellje të çuditshme.

## Anuloni mbështjelljen e imazheve në etiketën `

` në përmbajtje add_filter("the_content", "remove_img_ptags_func"); funksioni remove_img_ptags_func($content)( return preg_replace("/

\s*((?:]+>)?\s* ]+>\s*(?:)?)\s*/i", "\1", $content); ) // Lidhja e skriptit html5 për IE me cdn add_action("wp_head", "IEhtml5_shim_func"); funksioni IEhtml5_shim_func()) (echo ""; // ose nëse keni nevojë gjithashtu për mbështetje printimi // echo ""; )

Vendosni numrin maksimal të rishikimeve të rekordit

Si parazgjedhje, numri i rishikimeve të të dhënave është i pakufizuar dhe kjo mund të rrëmojë në mënyrë të panevojshme bazën e të dhënave. Çaktivizimi i plotë i rishikimeve nuk është gjithashtu zgjidhja më e mirë, sepse ndodh që gjatë redaktimit të një regjistrimi diçka të mos shkojë keq dhe të dhënat e futura humbasin - puna është në fund...

Në mënyrë ideale, kufizoni numrin e rishikimeve, për shembull në 5:

If(! defined("WP_POST_REVISIONS")) define("WP_POST_REVISIONS", 5);

Konstanta duhet të përcaktohet në shtojcë ose më herët.

Mbrojtja Duke hequr versionin WP

Kjo është e nevojshme në mënyrë që hakerët të mos e njohin versionin WP dhe të mos mund të identifikojnë pikat e dobëta. Së bashku me këtë kod, duhet të fshini edhe skedarin readme.html në rrënjën e faqes, sepse ai tregon edhe versionin aktual.

## Heqja e plotë e versionit WP ## Ju gjithashtu duhet të fshini skedarin readme.html në rrënjën e sitit remove_action("wp_head", "wp_generator"); // nga header add_filter("the_generator", "__return_empty_string"); // nga burimet dhe URL-të

Çaktivizoni mesazhet e gabimit në faqen e hyrjes

Në rast të një gabimi gjatë futjes së hyrjes ose fjalëkalimit, WP raporton se çfarë saktësisht është futur gabimisht: hyrje ose fjalëkalim. Kjo siguron informacion shtesë për hamendësuesit e fjalëkalimeve.

Çaktivizoni aftësinë për të modifikuar skedarët në panelin e administratorit për temat dhe shtojcat

Aftësia për të redaktuar skedarët direkt nga paneli i administratorit mund të bëhet një vrimë e madhe sigurie. Le ta mbyllim.

## Çaktivizo aftësinë për të redaktuar skedarët në panelin e administratorit për temat dhe shtojcat define ("DISALLOW_FILE_EDIT", e vërtetë);

Mbyllni publikimin përmes xmlrpc.php

Si parazgjedhje, aftësia për të publikuar postime përmes skedarit xmlrpc.php është aktivizuar.

Kjo është një mundësi për të publikuar postime nga jashtë, për shembull nga emaili... Më shpesh, ky funksionalitet nuk është i nevojshëm dhe mund të ketë vrima të mundshme në të. Prandaj, më shpesh është e dëshirueshme ta çaktivizoni atë. Nga rruga, në versionet e mëparshme të WordPress ky funksion ishte çaktivizuar si parazgjedhje dhe duhej të aktivizohej për ta përdorur atë.

## çaktivizoni mundësinë e publikimit nëpërmjet xmlrpc.php add_filter("xmlrpc_enabled", "__return_false");

Kur krijoni edhe një faqe interneti personale, jo të gjithë mund të parashikojnë të gjitha mënyrat e mundshme të përdorimit të mëtejshëm të saj. Është shumë e rëndësishme të përgatitet terreni për zhvillimin e mëtejshëm të sitit. Nëse keni krijuar një faqe interneti në të kaluarën dhe i keni caktuar të gjitha faqeve shtesën .html si parazgjedhje, dhe vetëm atëherë keni vendosur të përdorni PHP, atëherë lexoni më tej.

Më parë, për të përdorur SSI, emrat e faqeve të faqeve duhej të përfundonin me shtesën .shtml, por sot shumica e serverëve të internetit janë konfiguruar në mënyrë që SSI të përdoret në faqet me ekstensionin .html, gjë që është mjaft e përshtatshme. PHP është një histori krejtësisht e ndryshme - zgjerimi .php është zgjerimi i paracaktuar. Zhvilluesit e faqeve të internetit, duke ditur paraprakisht se do të përdoret një gjuhë programimi e caktuar, caktojnë menjëherë shtrirjen e saktë.

Por çfarë duhet bërë kur të gjitha faqet përfundojnë me shtesën .html?

Zëvendësoni shtesën HTML me PHP

Kjo mund të bëhet në disa mënyra. Mënyra më e dukshme është t'u jepni të gjitha faqeve një shtesë .php ose të ndryshoni shtesat ekzistuese (.html, .shtml, etj.). Kjo metodë ka disavantazhe. Për shembull, faqet e indeksuara tashmë me shtesën .html do të duhet të ri-indeksohen nga motorët e kërkimit. Ose edhe më keq, të gjitha lidhjet e jashtme që lidhen në mënyrë eksplicite me një faqe të caktuar do të jenë të pavlefshme. Dhe do të duhet të njoftoni pronarët e çdo faqeje për këto ndryshime dhe të krijoni një faqe tjetër me 301 gabime për secilën faqe. Sigurisht, ndryshimi i një zgjerimi në një tjetër është i pranueshëm, por çka nëse faqja tashmë ka shumë faqe dhe shumë lidhje me faqe të ndryshme nga sajte të tjera?

Për një arsye të vetëdijshme, për momentin të gjitha faqet e kësaj faqeje përfundojnë me zgjerimin html, dhe unë nuk doja të bëja ndryshimet e mësipërme, duke krijuar kështu vështirësi të panevojshme për veten time.

Ju mund ta bëni atë në një mënyrë tjetër. Nëse serveri që pret sitin mbështet mod_rewrite (në shumicën e rasteve e bën këtë), dhe ka akses në skedarin .htaccess, atëherë mund të shtoni rreshtat e mëposhtëm në këtë skedar:

RewriteEngine në RewriteRule ^(.*)\.html $1\.php

Duke shtuar këtë kod në .htaccess, nuk keni pse të shqetësoheni. Të gjitha faqet e kërkuara inekzistente me një shtesë .html do të zëvendësohen automatikisht me një shtesë .php falë mrekullive të Apache. Por kjo metodë nuk është e vetmja. Mund të shkruani sa vijon në të njëjtin skedar .htaccess:

Aplikacioni AddHandler/x-httpd-php .php .html .htm

Për mendimin tim mënyra më e suksesshme. Kjo i bën faqet HTML të barabarta me faqet PHP, që do të thotë se të gjitha funksionet PHP tani mund të përdoren në faqet me një shtrirje HTML. Nëse nuk keni akses në skedarin .htaccess, atëherë mund t'i shkruani një letër kompanisë pritëse dhe me mirësjellje t'u kërkoni administratorëve që të fusin vlerën e kërkuar për sitin në konfigurimin Apache (httpd.conf).

Nga rruga, nëse para kësaj faqja përdorte SSI si më poshtë:

atëherë në gjendjen e re PHP ky kod duhet të zëvendësohet me:

Epo, kjo është e gjitha, unë mendoj se një nga metodat e mësipërme do të ndihmojë.