HTML ձևեր. WP տարբերակի հեռացում

HitmanPro-ն հայտնաբերում, նույնականացնում և հեռացնում է վիրուսներ, լրտեսող ծրագրեր, տրոյականներ, rootkits և այլ չարամիտ ծրագրեր:

Կոմունալն օգտագործում է իր վարքագծային վերլուծության և ֆայլերի կլաստերի հետազոտման շարժիչը, ինչպես նաև ամպային սկանավորման նորարարական տեխնոլոգիան՝ օգտագործելով SophosLabs, Kaspersky և Bitdefender հակավիրուսային տվյալների բազաները: HitmanPro սկաները հայտնաբերում և հեռացնում է պոտենցիալ վնասակար սպառնալիքները՝ նվազագույն ազդեցություն ունենալով համակարգի աշխատանքի վրա:

* HitmanPro-ն անվճար հակավիրուսային սկաներ է: Ջնջման գործառույթը հասանելի է 30 օր անվճար:

HitmanPro-ի հիմնական հատկանիշները

Կարո՞ղ է ձեր հակավիրուսը հաղթահարել վերջին սպառնալիքները:

Չարամիտ ծրագրերի նոր աղբյուր կարելի է գտնել ցանկացած վայրում, նույնիսկ վստահելի կայքերում: Այս սպառնալիքները կարող են օգտագործել տարբեր տեխնիկա հակավիրուսային պաշտպանությունից խուսափելու համար: HitmanPro-ն նախագծված է հակավիրուսային պաշտպանության հետ աշխատելու համար և օգտագործում է վարքային խորը վերլուծություն՝ զրոյական օրվա սպառնալիքները գտնելու և չեզոքացնելու համար՝ ժամանակակից սպառնալիքներ, որոնք փորձում են խուսափել հայտնաբերելուց:

Վարքագծային հայտնաբերում + կոլեկտիվ փորձ

Չարամիտ ծրագրերը բացահայտելու համար ստորագրության սահմանումներ օգտագործելու փոխարեն, HitmanPro-ն ուսումնասիրում է յուրաքանչյուր ֆայլի վարքագիծը վնասակար գործունեության համար: Այս մոտեցումը HitmanPro-ին հնարավորություն է տալիս արգելափակել վերջին նենգ չարամիտ ծրագրերն ու վիրուսները՝ նախքան դրանք հայտնաբերելը: HitmanPro-ն նաև միանում է SophosLabs չարամիտ ծրագրերի տվյալների բազային՝ հայտնաբերելու նոր սպառնալիքների ավելի շատ ձևեր և հետագծելու դրանք դեպի իրենց աղբյուրը:

Տեղադրում չկա

HitmanPro-ն զբաղեցնում է 12 մեգաբայթ և տեղադրում չի պահանջում: Ծրագիրը կարող է գործարկվել անմիջապես ձեր աշխատասեղանից, USB կրիչից, CD/DVD-ից կամ հեռավոր պահեստից: Նույնիսկ եթե ձեր հակավիրուսը վերահսկվում է չարամիտ կամ փրկագինով, HitmanPro-ն ճիշտ կաշխատի և կկարողանա հայտնաբերել և հեռացնել սպառնալիքները:

Համապարփակ վերականգնում

HitmanPro-ն թույլ է տալիս հեռացնել մշտական ​​սպառնալիքները, որոնք տեղ են գտել օպերացիոն համակարգում և փոխարինել վարակված համակարգի ռեսուրսները անվտանգ, օրիգինալ տարբերակներով, միաժամանակ շարունակելով արգելափակել կրկնակի վարակման փորձերը:

Թեստավորման մրցանակներ

$_SESSION զանգվածի միջոցով տվյալների փոխանցումը թույլատրվում է մեկ անգամ, փոխանցված տվյալները անմիջապես ջնջվում են: Սա կարող է օգտակար լինել, օրինակ, այլ մոդուլում մուտքագրված տվյալները ձևաթղթին «վերադարձնելիս»:

Լավ է, երբ սպասարկման բոլոր գործառույթները համակցված են մեկ մոդուլի մեջ, որը հիմնական մոդուլները միացնում են require_once հրահանգի միջոցով: Ծառայության գործառույթների մեր մոդուլը կանվանենք function.php և, բացի նշված trimall և magic մեթոդներից, այնտեղ կներառենք հետևյալ գործառույթները.

  • read() - կկարդա ընթացիկ տվյալների բազան և կվերադարձնի գրառումների զանգված;
  • write($a) - ֆայլում կգրի $a գրառումների զանգված;
  • get_index_by_name ($a,$name) - կփնտրի համապատասխան գրառումը $name անունով և կվերադարձնի դրա համարը (զրոյից) կամ -1 արժեքը, եթե մուտքը չի գտնվել: Սա օգտակար է նոր գրառում ավելացնելու և գոյություն ունեցողը խմբագրելու միջև տարբերակելու համար:

Բացի այդ, գործառույթների ֆայլը կներառի կազմաձևման ֆայլը և կսկսի նիստը. այս հնարավորությունները կարող են անհրաժեշտ լինել այն կապող ցանկացած մոդուլի:

Function.php ֆայլ

Նկատի ունեցեք, որ կարդալու ֆունկցիան լրացուցիչ զտում է գրառումների զանգվածը դատարկ տողերից (միայն այն դեպքում, եթե, ընդհանուր առմամբ, դրանք չպետք է առաջանան), և trimall-ը նախ կփոխարինի սահմանազատողների ցանկացած ոչ դատարկ տողը մեկ բացատով (երկրորդ preg_replace) և ապա հեռացնել հնարավոր լրացուցիչ սահմանազատիչները մնացած տողի սկզբում և վերջում (առաջին preg_replace):

Կոդերի համատեղելիության առումով կա նաև մի նրբերանգ կարդալու ֆունկցիայի հետ։ Քանի որ նրա միակ տողը պարունակում է անանուն ֆունկցիա, ենթադրվում է, որ օգտագործվում է PHP-ի տարբերակը 5.3-ից ոչ ցածր: Անհրաժեշտության դեպքում փոխարինեք ստորև բերված կոդը մեկով, որտեղ ֆիլտրման գործառույթն անվանված է կամ ընդհանրապես չի օգտագործվում, ինչպես այստեղ.

Ֆունկցիան կարդալ () ($str=@file_get_contents (FILENAME); $a=explode("\n",$str); վերադարձնել $a;)

Յունիկոդի տողը փոքրատառի ճիշտ փոխանցումը նույնպես կարևոր է (տես mb_strtolower կոդը): Մենք այստեղ չենք օգտագործում տեղայնությունը:

Կարծես ժամանակն է գրել հիմնական index.php ֆայլը: Նա կլուծի հետևյալ խնդիրները.

  • ցուցադրել նոր մուտք ավելացնելու ձև, որը մշակվում է add.php մոդուլի կողմից;
  • Ավելացնող ձևի կողքին մենք կցուցադրենք լրացուցիչ հրամաններ՝ ձևը մաքրելով առանց պարամետրերի սկրիպտի «ինքնահղման» միջոցով (կոճակն այստեղ չի աշխատի, քանի որ այն չի փոխանցում տվյալները սերվերին) և հղում՝ գրառումների տեսակավորմանը մուտք գործելու համար։ sort.php անունով մոդուլ;
  • ստանալ իրենց աշխատանքի արդյունքները այլ մոդուլներից $status թվային փոփոխականի տեսքով և ցուցադրել համապատասխան հաղորդագրություններ (զանգված $status_msg): $status արժեքը, որը հավասար է զրոյի, կընդունվի լռելյայնորեն, այն համապատասխանում է ծրագրի աշխատանքի մասին հակիրճ օգնության արդյունքին.
  • եթե տվյալների բազան դատարկ չէ, ցույց տվեք դրա գրառումները և անցում կատարեք խմբագրման կամ ջնջման:

Որպեսզի աղյուսակը չծանրաբեռնվի լրացուցիչ կոճակներով և հղումներով, եկեք սեղմենք անունովգնալով խմբագրել մուտքը edit.php մոդուլի միջոցով և սեղմելով ըստ «համար» դաշտիկհամապատասխանի del.php մոդուլի կողմից գրառումը ջնջելուն:

Ահա, թե ինչ տեսք ունի այն՝ ավելացնելով մի քանի գրառում.

«Mini-DB տեքստային ֆայլի վրա» սցենարի տեսքը

index.php ֆայլ

Այժմ եկեք անցնենք բացակայող մոդուլներին: add.php-ը կարծես թե ունի պարզ աշխատանք՝ ստացեք $name և $number փոփոխականները index.php-ից և գրեք դրանք ֆայլում: Այնուամենայնիվ, մոդուլը պետք է ստուգի, որ ոչ դատարկ տվյալներ են փոխանցվել իրեն, ինչպես նաև կարողանա տարբերակել այն իրավիճակը, երբ տվյալների բազայում արդեն գոյություն ունեցող անունը մուտքագրվում է նոր գրառումի մուտքագրումից (տես, արդյոք ($id>- 1) ( ... ) ուրիշ ( ... ) կոդում): Վերջին դեպքում մուտքը միշտ ավելացվում է վերջում, քանի որ այնտեղ լինելու է տողերի այբբենական կարգով տեսակավորման մոդուլ։

Կարևոր է նաև, որ $name տողը, «անցած» պարամետրերի մշակողի միջով, արդեն զուրկ է «, «, «կարևոր» նշագրման նշաններից:< и >, իսկ $a զանգվածում, որը կարդացվում է տվյալների ֆայլից, բոլոր տողերը «ինչպես կա», և 123-ը չի գտնվի, եթե մշակումից հետո $name-ը վերածվի 123-ի: Հետևաբար, գրառումների որոնման ֆունկցիան, որը մենք անվանում ենք get_index_by_name, փոխանցվում է մի տող, որը վերածվում է «վերադարձի» իր սկզբնական ձևին՝ օգտագործելով ստանդարտ htmlspecialchars_decode ֆունկցիան (հասանելի է PHP 5.1-ի դրությամբ): Նույն ձևով տողը վերադարձվում է index.php՝ $_SESSION զանգվածի միջոցով: Սա որոշակի հարմարություն կապահովի. նոր գրառում մուտքագրելուց հետո դրա տվյալները կմնան ձևի մեջ, և հնարավոր կլինի մուտքագրել մեկ այլ գրառում՝ անունով մի փոքր տարբեր («Իվանովա»՝ «Իվանովից» հետո):

Դե, մոդուլից մոդուլ վերադարձը բացարձակապես ստանդարտ է` ստանդարտ վերնագրի ֆունկցիայի միջոցով: Հիշեք, որ այն կարող է օգտագործվել միայն այն դեպքում, եթե մոդուլը դեռ ոչինչ չի թողարկել բրաուզերին:

add.php ֆայլ

Հիմա խմբագրման մասին այն կիրականացվի edit.php-ում։ Խմբագրման ձևը գրեթե նույնն է, ինչ ավելացման ձևը, մենք պարզապես շատ ծույլ էինք ձևը ցուցադրելու համար առանձին գործառույթ ստեղծելու համար: Ավելի կարևոր է, որ մոդուլն ինքնին կլինի խմբագրման ձևի միջոցով փոխանցվող տվյալների մշակող, և, հետևաբար, պետք է տարբերակի այն իրավիճակը, երբ այն պարզապես կանչվում է այն իրավիճակից, երբ օգտագործողը սեղմել է «Պահել»: Վերջին խնդիրը ստուգելն է

Եթե ​​(!դատարկ($_POST["ներկայացնել"]) && !դատարկ($name) && isset($number) && isset($id)) (

որոշել, թե արդյոք կոճակը սեղմվել է և բոլոր տվյալները փոխանցվել են: Երկրորդ մասնաճյուղ -

Այլապես, եթե (isset($a[$id])) (

նախատեսված է այն իրավիճակի համար, երբ $a զանգվածում կա գրառում, որի համարը փոխանցվում է սցենարին և այն պետք է խմբագրվի։ Մուտքի համարը պահվում է թաքնված HTML դաշտում:

Ֆայլ edit.php

Del.php գրառումների հեռացման մոդուլը բավականին պարզ կլինի, դրան անհրաժեշտ է ընդամենը ստանալ վավեր $id գրառում (տարրի համարը $a զանգվածում), հեռացնել համապատասխան տարրը զանգվածից, վերաշարադրել ֆայլը և վերադառնալ հիմնական մոդուլ: էջ.

Ֆայլ del.php

Վերջապես, sort.php տեսակավորման մոդուլը կներկայացնի նոր խնդիր՝ ինչպե՞ս դասավորել Յունիկոդի տողերը այբբենական կարգով՝ առանց մեծատառերից փոքրատառերը տարբերելու: «Ուղիղ» տեսակավորումը՝ օգտագործելով ստանդարտ տեսակավորման ֆունկցիան, դժվար թե հարմար լինի. փոքրատառ և մեծատառը տարբեր նիշեր են համարում: Մենք չենք սահմանել տեղայնությունը, հատկապես, որ բոլոր օպերացիոն համակարգերի համար չկա մուտքի մեկ ձև այն տեղադրելու համար:

Եկեք սահմանափակվենք՝ ընտրելով usort՝ տարրերը համեմատելու հատուկ գործառույթով զանգվածների տեսակավորման գործառույթների ողջ բազմազանությունից:

Մեկ նիշանոց Unicode տողերի օգտագործված «ուղիղ» համեմատությունը, կարծես թե, ամբողջովին ճիշտ չէ, բայց strcmp-ը համեմատում է տողերը բայթ առ բայթ և հարմար չէ մեզ համար, բայց ընդհանուր առմամբ համեմատությունը ճիշտ է. ցանկացած Unicode-ում տողերը շատ բարդ խնդիր է... Ռուսերենի և անգլերենի համար համակարգում ինձ մոտ ամեն ինչ ստացվեց, օրինակ՝ տեսակավորելուց հետո ստացա բնական բառերի պատվերներ, ինչպիսիք են.

Աբբա, Ավկա, ավկլիտ, բասյա, Բոբի, Բոբիկ, բոբիկ, Բոբինա

Ֆայլի տեսակավորում.php

Մեզ մնում է միայն .htaccess անունով թղթապանակում ստեղծել ֆայլ, որտեղ լռելյայն կոդավորումը կդնենք Յունիկոդի վրա և կնշենք կայքի համար գնանշումներ սահմանելու հրահանգները, ուստի...

Նույն թղթապանակում ստեղծեք դատարկ (0 բայթ) ֆայլ data.txt (ըստ ցանկության, եթե բոլոր իրավունքները կազմաձևված են):

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

Դուք կարող եք տեսնել, թե ինչ է տեղի ունեցել և տեղեկացնել ինձ ձեր գտած խնդիրների մասին, ես գրել եմ սցենարը շատ արագ, 2 քայլով, և գուցե ինչ-որ բան չմտածեի :)

Օգտակար հատվածների (կոդերի) հավաքածու. Կոդերը նախատեսված են ընդհանուր առաջադրանքների համար՝ թեմա խմբագրելիս կամ ստեղծելիս:

Սովորաբար այս ամբողջ կոդը պետք է տեղադրվի թեմայի functions.php ֆայլում։ Կամ կարող եք ստեղծել առանձին.php ֆայլ, տեղադրել կոդը այնտեղ և միացնել ֆայլը թեմայի functions.php-ին այսպես.

// միացնել հատվածները require_once "functions-snippets.php";

CSS տեսք TinyMCE խմբագրի համար

Միացնում է ոճերի ֆայլը WordPress TinyMCE խմբագրին: Այս կերպ մենք կարող ենք կարգավորել խմբագրի ոճերը ադմինիստրատորի վահանակում և գրառումը խմբագրելիս տեսնել, թե ինչպես է այն նայում առջևի մասում:

// Styles for the TinyMCE editor // Դուք պետք է ստեղծեք ֆայլ «editor-styles.css» թեմայի թղթապանակում add_action(«current_screen», «my_theme_add_editor_styles»); ֆունկցիա my_theme_add_editor_styles() ( add_editor_style("editor-styles.css"); )

CSS մուտքի էջի համար

## CSS մուտքի էջի համար ## Դուք պետք է ստեղծեք «wp-login.css» ֆայլը թեմայի թղթապանակում add_action("login_head", "my_loginCSS"); ֆունկցիա my_loginCSS() (echo "";)

CSS ադմինիստրատորի վահանակի համար

Ներառում է ոճային ֆայլ ադմինիստրատորի վահանակի բոլոր էջերում: Այսպիսով, դուք կարող եք հարմար ձևափոխել և լրացնել ադմինիստրատորի վահանակի ոճերը:

## CSS ոճեր ադմինիստրատորի վահանակի համար: Դուք պետք է ստեղծեք «wp-admin.css» ֆայլը թեմայի թղթապանակում add_action("admin_enqueue_scripts", "my_admin_css", 99); ֆունկցիա my_admin_css())( wp_enqueue_style("my-wp-admin", get_template_directory_uri() ."/wp-admin.css"); )

Հեռացնելով Admin Bar-ը Front End-ից

Ադմինիստրատորի բարը կարող է խանգարել, երբ թեման օգտագործում է ֆիքսված (լողացող) բլոկներ: Նման դեպքերում երբեմն ավելի հեշտ է հեռացնել այս բարը:

## Հեռացնում է Admin Bar-ը առջևի մասից add_filter("show_admin_bar", "__return_false"); ## Միացնել վիդջեթի աջակցությունը: Ավելացնել տարածք վիջեթների համար if(function_exists("register_sidebar"))( register_sidebar(array("before_widget" => "", "after_widget" => "", "before_title" => "", "after_title" => "" ,));)

Ակտիվացնում է անհատական ​​մենյուի աջակցությունը

Գրանցում է տարածք (տեղանք) մենյուի համար և հնարավորություն է տալիս մենյուի աջակցությունը: Այս կոդը ադմինիստրատորի վահանակում տեղադրելուց հետո հնարավոր կլինի ստեղծել անհատական ​​մենյու և կցել դրանք այս կոդով ստեղծված տարածքներին։ Մենյուի ձևանմուշում այն ​​ցուցադրվում է wp_nav_menu() ֆունկցիայի միջոցով:

## Ավելացնել հատուկ ընտրացանկեր register_nav_menus(array("main" => "Main menu", "in_footer" => "Menu in the footer",));

Հղումներ ավելացնելով հաղորդագրությունների և մեկնաբանությունների RSS հոսքին

Պատվերով ֆոնային պատկեր կամ ֆոն ## Թույլ է տալիս ադմինիստրատորի վահանակից ֆոնային պատկեր սահմանելու հնարավորությունը add_theme_support("custom-background");

Արդյունքում կոդը դուրս կգա.

body.custom-background (ֆոնի գույնը՝ #bdd96e; )

Ներառյալ կարճ կոդերը «Text» վիդջեթում

Շատ պլագիններ օգտագործում են կարճ կոդեր, բայց ոչ բոլորն ունեն վիդջեթներ: Այս դեպքում հարմար կլինի օգտագործել plugin-ի կարճ կոդը «Text» վիդջեթում:

## Կարճ կոդեր «Տեքստ» վիջեթում if(! is_admin())( add_filter("widget_text", "do_shortcode", 11); )

Պատահական տեքստը լռելյայնորեն ադմինիստրատորի տարածքում գտնվող բովանդակության դաշտում

Նոր գրառում (գրառում կամ էջ) ստեղծելիս երբեմն հարմար է այնտեղ որոշ նշումներ ունենալ՝ բացատրելով, թե ինչպես և ինչ գրել։ Դա անելու համար դուք կարող եք լռելյայն տեքստ տեղադրել բովանդակության մեջ.

## Պատահական լռելյայն տեքստ խմբագրիչի համար add_filter ("default_content", "writing_encouragement_func"); ֆունկցիա write_encouragement_func($content) ( գլոբալ $post_type; // Տեքստեր խմբագրի համար, գրառման տեսակը if($post_type == "post") ($array = array("Some message", "Some message", ); վերադարձնել $ array[ array_rand($array) ];) // Տեքստեր խմբագրի համար, գրառման տիպի էջ այլ ( $array = array("Some message", "Some message",); return $array[array_rand($array) ]; ))

Փոփոխելով որոնման էջում գրառումների քանակը

Լռելյայնորեն, որոնման էջը ցույց է տալիս էջի նույն թվով գրառումներ, ինչպես այլ վայրերում, ինչպես սահմանված է կարգավորումներում:

Այս օրինակը ցույց է տալիս, թե ինչպես ցուցադրել 100 գրառում մեկ էջում:

## փոխել գրառումների քանակը որոնման էջում - այստեղ սահմանել 100 add_action("pre_get_posts", "search_results_per_page_func"); գործառույթը search_results_per_page_func($query) (// հարցումը որոնման էջում if(! is_admin() && $query->is_main_query() && $query->is_search())( $query->set("posts_per_page", 100) ;) վերադարձնել $query;)

Որոշում է, թե քանի բառ պետք է լինի մեջբերումը, որը սովորաբար ցուցադրվում է գրառումների արխիվացված էջերում (կատեգորիաներ, պիտակներ): Մեջբերումը ստացվում է the_excerpt() ֆունկցիայի միջոցով:

## Մեջբերման երկարության փոփոխություն add_filter("excerpt_length", "custom_excerpt_length_func"); custom_excerpt_length_func ($length) ֆունկցիա (վերադարձ 20; // բառերի քանակը)

Ադմինիստրատորի վահանակի պրոֆիլից դաշտերի հեռացում. AIM, Yahoo IM, Jabber ## հեռացնում է պրոֆիլից դաշտերը՝ AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "remove_contactmethod"); ֆունկցիա remove_contactmethod ($contactmethods) ( unset ($contactmethods["aim"]); unset ($contactmethods["jabber"]); unset ($contactmethods["yim"]); վերադարձնել $contactmethods; ) դաշտերի ավելացում պրոֆիլին ադմինիստրատորում՝ facebook, twitter ## Ավելացնում է դաշտեր պրոֆիլում՝ AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "add_contactmethod"); ֆունկցիա add_contactmethod($contactmethods) ( $contactmethods["twitter"] = "Twitter"; $contactmethods["facebook"] = "Facebook"; return $contactmethods;

Որպեսզի այս հաքը աշխատի, թեմայի պիտակը պետք է օգտագործի body_class() կաղապարի թեգը, ինչպես ընդունված է:

## «has_sidebar» դասի ավելացում «» պիտակին, եթե կա sidebar add_filter("body_class", "has_sidebar_func"); ֆունկցիա has_sidebar_func($classes)( if(is_active_sidebar("sidebar"))( // ավելացնել դաս $classes = "has_sidebar"; ) վերադարձնել $classes;)

Վիդջեթի ավելացում վահանակին

Երբեմն կարող է օգտակար լինել վիջեթ ավելացնել ադմինիստրատորի վահանակի վահանակին՝ ընթացիկ թեմայի վերաբերյալ կարևոր տեղեկություններ տեղադրելու համար:

## Պատվերով վիդջեթ մխիթարելում admin panel-ում add_action("wp_dashboard_setup", "my_custom_dashboard_widgets"); ֆունկցիա my_custom_dashboard_widgets() ( wp_add_dashboard_widget("custom_help_widget", "Theme Notes", "custom_dashboard_help"); ) գործառույթ custom_dashboard_help() (echo "

Բարի գալուստ «Իմ թեման» թեմա: Ահա թեմայի վերաբերյալ որոշ նշումներ»:;)

Մենք ստանում ենք այս վիդջեթը.

Ներառյալ մեկնաբանության պատասխանի սցենար

Այս սցենարը տեղափոխում է մեկնաբանության ձևը, երբ սեղմում եք «Պատասխանել» կոճակը:

## Մեկնաբանության պատասխանի սցենարի միացում add_action("wp_footer", "enable_threaded_comments"); ֆունկցիա enable_threaded_comments())( if(is_singular() && comments_open() && get_option("thread_comments")) wp_enqueue_script ("մեկնաբանություն-պատասխան");)

Նկարներ Միացնել գրառումների մանրապատկերները

Լռելյայնորեն, հաղորդագրությունները չունեն բլոկ, որտեղ դուք կարող եք տեղադրել գրառման մանրապատկեր: Որպեսզի նման բլոկ հայտնվի, այն պետք է միացված լինի: Դուք պետք է միացնեք մանրապատկերների աջակցությունը: Սա արվում է շատ պարզ.

## Գրառումների մանրապատկերների ակտիվացում add_theme_support("post-thumbnails"); set_post_thumbnail_size (200, 200, true); // Գրառումների սովորական մանրապատկերներ

Մանրապատկերների լրացուցիչ միջանկյալ չափերի ստեղծում

Երբ պատկեր եք վերբեռնում, դրա համար ստեղծվում են լրացուցիչ չափեր՝ մանրապատկերներ: Դուք կարող եք հեշտությամբ ավելացնել ձեր սեփական չափսերը հիմնականներին՝ կամայականներին:

## Մանրապատկերների միջանկյալ չափերի ստեղծում if(function_exists("add_image_size"))(add_image_size("mysize-horizont", 300, 200, true); add_image_size ("mysize-vertical", 400, 500, true); )

Գրանցված չափը ստանալու համար օգտագործեք ֆունկցիան.

Մանրապատկերի ավելացում RSS հոսքում

Այս կոդը ավելացնում է գրառման մանրապատկեր RSS հոսքի վերևում:

## Մանրապատկերի ավելացում 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; վերադարձնել $content;)

Չեղարկել պատկերների փաթեթավորումը պիտակի մեջ

Բովանդակության մեջ

Թեմայում բովանդակությունը ցուցադրելիս՝ օգտագործելով the_content() , գործարկվում է wpautop() ֆունկցիան և արդյունքում, եթե գտնվում է առանձին գծի վրա, այն փաթաթվում է

Նրանք. էր դարձավ .

Այս օրինակը ցույց է տալիս, թե ինչպես հեռացնել այս տարօրինակ պահվածքը:

## Չեղարկել պատկերների փաթեթավորումը ` պիտակի մեջ

` բովանդակության մեջ add_filter ("the_content", "remove_img_ptags_func"); ֆունկցիա remove_img_ptags_func($content)( return preg_replace("/

\s*((?:]+>)?\s* ]+>\s*(?:)?)\s*/i", "\1", $content); ) // IE-ի html5 սցենարի միացում cdn add_action-ով ("wp_head", "IEhtml5_shim_func"); գործառույթը IEhtml5_shim_func()) (echo ""; // կամ եթե Ձեզ նույնպես անհրաժեշտ է տպագրության աջակցություն // echo "";)

Սահմանեք գրառումների վերանայումների առավելագույն քանակը

Լռելյայնորեն, գրառումների վերանայումների թիվն անսահմանափակ է, և դա կարող է անհարկի խառնաշփոթել տվյալների բազան: Վերանայման ամբողջական անջատումը նույնպես լավագույն լուծումը չէ, քանի որ պատահում է, որ ձայնագրությունը խմբագրելիս ինչ-որ բան սխալ է լինում, և մուտքագրված տվյալները կորչում են.

Իդեալում, սահմանափակեք վերանայումների քանակը, օրինակ՝ 5-ի:

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

Հաստատուն պետք է սահմանվի plugin-ում կամ ավելի վաղ:

Պաշտպանություն հեռացնելով WP տարբերակը

Սա անհրաժեշտ է, որպեսզի հաքերները չգիտեն WP տարբերակը և չկարողանան բացահայտել թույլ կողմերը։ Այս կոդի հետ պետք է ջնջել նաև readme.html ֆայլը կայքի արմատից, քանի որ այն ցույց է տալիս նաև ընթացիկ տարբերակը։

## WP տարբերակի ամբողջական հեռացում ## Դուք նաև պետք է ջնջեք readme.html ֆայլը կայքի արմատից remove_action("wp_head", "wp_generator"); // վերնագրից add_filter ("the_generator", "__return_empty_string"); // հոսքերից և URL-ներից

Անջատեք սխալի հաղորդագրությունները մուտքի էջում

Մուտքագրման կամ գաղտնաբառի մուտքագրման ժամանակ սխալի դեպքում WP-ն հայտնում է, թե կոնկրետ ինչ է սխալ մուտքագրվել՝ մուտք կամ գաղտնաբառ: Սա լրացուցիչ տեղեկատվություն է տրամադրում գաղտնաբառերը գուշակողներին:

Անջատեք ֆայլերը ադմինիստրատորի վահանակում խմբագրելու հնարավորությունը թեմաների և պլագինների համար

Ֆայլերը անմիջապես ադմինիստրատորի վահանակից խմբագրելու ունակությունը կարող է դառնալ անվտանգության մեծ անցք: Եկեք փակենք:

## Անջատել ֆայլերը ադմինիստրատորի վահանակում խմբագրելու հնարավորությունը՝ թեմաների և պլագինների սահմանման համար ("DISALLOW_FILE_EDIT", true);

Փակեք հրապարակումը xmlrpc.php-ի միջոցով

Լռելյայնորեն, xmlrpc.php ֆայլի միջոցով գրառումներ հրապարակելու հնարավորությունը միացված է:

Սա դրսից գրառումներ հրապարակելու հնարավորություն է, օրինակ՝ էլ. Հետեւաբար, ամենից հաճախ ցանկալի է անջատել այն։ Ի դեպ, WordPress-ի ավելի վաղ տարբերակներում այս ֆունկցիոնալությունը լռելյայն անջատված էր և պետք է միացված լիներ այն օգտագործելու համար։

## անջատել xmlrpc.php-ի միջոցով հրապարակելու հնարավորությունը add_filter("xmlrpc_enabled", "__return_false");

Նույնիսկ անձնական կայք ստեղծելիս ոչ բոլորը կարող են կանխատեսել դրա հետագա օգտագործման բոլոր հնարավոր ուղիները։ Շատ կարևոր է հող նախապատրաստել կայքի հետագա զարգացման համար: Եթե ​​նախկինում կայք եք ստեղծել և բոլոր էջերին լռելյայն հատկացրել եք .html ընդլայնում, և միայն դրանից հետո որոշել եք օգտագործել PHP, ապա կարդացեք:

Նախկինում SSI-ն օգտագործելու համար կայքի էջի անունները պետք է ավարտվեին .shtml ընդլայնմամբ, սակայն այսօր ինտերնետ սերվերների մեծ մասը կազմաձևված է այնպես, որ SSI-ն կարող է օգտագործվել .html ընդլայնմամբ էջերում, ինչը բավականին հարմար է: PHP-ն բոլորովին այլ պատմություն է՝ .php ընդլայնումը լռելյայն ընդլայնումն է: Կայքի մշակողները, նախապես իմանալով, որ կօգտագործվի տվյալ ծրագրավորման լեզու, անմիջապես նշանակում են ճիշտ ընդլայնում։

Բայց ի՞նչ անել, երբ բոլոր էջերն ավարտվում են .html ընդլայնմամբ:

Փոխարինեք HTML ընդլայնումը PHP-ով

Դա կարելի է անել մի քանի ձևով. Ամենաակնառու միջոցը բոլոր էջերին տալ .php ընդլայնում կամ փոխել առկա ընդլայնումները (.html, .shtml և այլն): Այս մեթոդը ունի թերություններ. Օրինակ, .html ընդլայնմամբ արդեն ինդեքսավորված էջերը պետք է վերաինդեքսավորվեն որոնման համակարգերի կողմից: Կամ նույնիսկ ավելի վատ, բոլոր արտաքին հղումները, որոնք բացահայտորեն հղում են կատարում կոնկրետ էջին, անվավեր կլինեն: Եվ դուք ստիպված կլինեք տեղեկացնել յուրաքանչյուր կայքի սեփականատերերին այս փոփոխությունների մասին և ստեղծել մեկ այլ էջ՝ յուրաքանչյուր էջի համար 301 սխալով։ Իհարկե, մի ընդլայնումը մյուսին փոխելն ընդունելի է, բայց ի՞նչ, եթե կայքն արդեն ունի բազմաթիվ էջեր և բազմաթիվ հղումներ դեպի այլ կայքերի տարբեր էջեր:

Գիտակից պատճառով այս պահին այս կայքի բոլոր էջերը ավարտվում են html ընդլայնմամբ, և ես չէի ցանկանում կատարել վերը նշված փոփոխությունները՝ դրանով իսկ ստեղծելով ավելորդ դժվարություններ ինձ համար։

Դուք կարող եք դա անել այլ կերպ: Եթե ​​կայքը հյուրընկալող սերվերն աջակցում է mod_rewrite-ին (շատ դեպքերում դա անում է), և կա մուտք դեպի .htaccess ֆայլ, ապա կարող եք ավելացնել հետևյալ տողերը հենց այս ֆայլում.

RewriteEngine-ը RewriteRule-ում ^(.*)\.html $1\.php

Այս կոդը ավելացնելով .htaccess-ին, դուք պետք չէ անհանգստանալ: Բոլոր պահանջված գոյություն չունեցող էջերը .html ընդլայնմամբ ավտոմատ կերպով կփոխարինվեն .php ընդլայնմամբ Apache-ի հրաշքների շնորհիվ: Բայց այս մեթոդը միակը չէ։ Նույն .htaccess ֆայլում կարող եք գրել հետևյալը.

AddHandler հավելված/x-httpd-php .php .html .htm

Իմ կարծիքով ամենահաջող ճանապարհը։ Սա HTML էջերը հավասարեցնում է PHP էջերին, ինչը նշանակում է, որ բոլոր PHP գործառույթներն այժմ կարող են օգտագործվել HTML ընդլայնում ունեցող էջերում: Եթե ​​դուք չունեք մուտք դեպի .htaccess ֆայլը, ապա կարող եք նամակ գրել հոսթինգ ընկերությանը և քաղաքավարի կերպով խնդրել ադմիններին մուտքագրել կայքի համար անհրաժեշտ արժեքը Apache-ի կազմաձևում (httpd.conf):

Ի դեպ, եթե մինչ այս կայքը SSI-ն օգտագործում էր հետևյալ կերպ.

ապա նոր PHP վիճակում այս կոդը պետք է փոխարինվի հետևյալով.

Դե, դա բոլորն է, կարծում եմ, որ վերը նշված մեթոդներից մեկը կօգնի: