HTML ფორმები. WP ვერსიის წაშლა

HitmanPro ამოიცნობს, ამოიცნობს და შლის ვირუსებს, ჯაშუშურ პროგრამებს, ტროიანებს, rootkits-ს და სხვა მავნე პროგრამებს.

პროგრამა იყენებს საკუთარ ქცევის ანალიზს და ფაილების კლასტერული გამოკვლევის ძრავას, ასევე ღრუბლოვანი სკანირების ინოვაციურ ტექნოლოგიას SophosLabs, Kaspersky და Bitdefender ანტივირუსული მონაცემთა ბაზების გამოყენებით. HitmanPro სკანერი აღმოაჩენს და შლის პოტენციურად მავნე საფრთხეებს სისტემის მუშაობაზე მინიმალური ზემოქმედებით.

* HitmanPro არის უფასო ანტივირუსული სკანერი. წაშლის ფუნქცია ხელმისაწვდომია 30 დღის განმავლობაში უფასოდ.

HitmanPro-ს ძირითადი მახასიათებლები

შეუძლია თუ არა თქვენს ანტივირუსს გაუმკლავდეს უახლეს საფრთხეებს?

მავნე პროგრამების ახალი წყარო შეგიძლიათ იპოვოთ ყველგან, თუნდაც სანდო საიტებზე. ამ საფრთხეებს შეუძლიათ გამოიყენონ სხვადასხვა ტექნიკა ანტივირუსული დაცვის თავიდან ასაცილებლად. HitmanPro შექმნილია ანტივირუსულ დაცვასთან მუშაობისთვის და იყენებს ღრმა ქცევის ანალიზს ნულოვანი დღის საფრთხეების საპოვნელად და გასანეიტრალებლად - თანამედროვე საფრთხეები, რომლებიც ცდილობენ თავი აარიდონ გამოვლენას.

ქცევის გამოვლენა + კოლექტიური გამოცდილება

მავნე პროგრამის იდენტიფიცირებისთვის ხელმოწერის განმარტებების გამოყენების ნაცვლად, HitmanPro იკვლევს თითოეული ფაილის ქცევას მავნე აქტივობისთვის. ეს მიდგომა აძლევს HitmanPro-ს შესაძლებლობას დაბლოკოს უახლესი მზაკვრული მავნე პროგრამები და ვირუსები მათ იდენტიფიცირებამდე. HitmanPro ასევე უერთდება SophosLabs მავნე პროგრამების მონაცემთა ბაზას, რათა აღმოაჩინოს ახალი საფრთხეების მეტი ფორმები და მიაკვლიოს მათ წყარომდე.

ინსტალაცია არ არის

HitmanPro იკავებს 12 მეგაბაიტს და არ საჭიროებს ინსტალაციას. პროგრამის გაშვება შესაძლებელია პირდაპირ თქვენი დესკტოპიდან, USB დისკიდან, CD/DVD-დან ან დისტანციური მეხსიერებიდან. მაშინაც კი, თუ თქვენს ანტივირუსს აკონტროლებს მავნე პროგრამა ან გამოსასყიდი, HitmanPro სწორად იმუშავებს და შეძლებს საფრთხეების აღმოჩენას და ამოღებას.

ყოვლისმომცველი რესტავრაცია

HitmanPro საშუალებას გაძლევთ წაშალოთ მუდმივი საფრთხეები, რომლებმაც ფეხი მოიკიდეს ოპერაციულ სისტემაში და შეცვალოს ინფიცირებული სისტემის რესურსები უსაფრთხო, ორიგინალური ვერსიებით, ხოლო განაგრძოთ ხელახალი ინფექციის მცდელობების დაბლოკვა.

ტესტირების ჯილდოები

მონაცემთა გადაცემა $_SESSION მასივის მეშვეობით ნებადართულია ერთხელ; გადაცემული მონაცემები დაუყოვნებლივ წაიშლება. ეს შეიძლება იყოს სასარგებლო, მაგალითად, სხვა მოდულში შეყვანილი მონაცემების ფორმაში „დაბრუნებისას“.

კარგია, როცა ყველა სერვისის ფუნქცია გაერთიანებულია ერთ მოდულში, რომელსაც ძირითადი მოდულები აკავშირებს მოთხოვნა_ერთჯერ დირექტივის მეშვეობით. სერვისის ფუნქციების ჩვენს მოდულს დავარქმევთ function.php და ხსენებული ტრიმალის და ჯადოსნური მეთოდების გარდა, იქ ჩავრთავთ შემდეგ ფუნქციებს:

  • 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;)

ასევე მნიშვნელოვანია Unicode სტრიქონის სწორად გადატანა პატარაზე (იხილეთ 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 დახარისხების მოდული შემოგვთავაზებს ახალ პრობლემას - როგორ დავახარისხოთ უნიკოდის სტრიქონები ანბანურად დიდი და პატარა ასოების გარჩევის გარეშე? "პირდაპირი" დალაგება სტანდარტული დახარისხების ფუნქციის გამოყენებით ძნელად შესაფერისია - იგი თვლის პატარა და დიდ ასოს სხვადასხვა სიმბოლოდ. ჩვენ არ დავაყენეთ ლოკალი, მით უმეტეს, რომ არ არსებობს ერთი შესვლის ფორმა ყველა ოპერაციული სისტემის ინსტალაციისთვის.

მოდით შემოვიფარგლოთ უსორტის არჩევით ფუნქციების მთელი მრავალფეროვნებიდან მასივების დასალაგებლად ელემენტების შედარების მორგებული ფუნქციით.

გამოყენებული "პირდაპირი" შედარება ერთი სიმბოლო უნიკოდის სტრიქონების, როგორც ჩანს, არ არის მთლად სწორი, მაგრამ strcmp ადარებს სტრიქონებს ბაიტი-ბაიტი და არ არის შესაფერისი ჩვენთვის, მაგრამ ზოგადად შედარება სწორია. ნებისმიერისტრიქონები უნიკოდში ძალიან რთული ამოცანაა... სისტემაში ყველაფერი მუშაობდა რუსულსა და ინგლისურზე, მაგალითად, დახარისხების შემდეგ მივიღე ბუნებრივი სიტყვების ბრძანებები, მაგ.

აბა, ავკა, ავკლით, ბასია, ბობი, ბობიკი, ბობიკი, ბობინა

ფაილის დალაგება.php

საკმარისია შევქმნათ ფაილი საქაღალდეში სახელად .htaccess, სადაც ნაგულისხმევი კოდირება დავაყენოთ Unicode-ზე და მივუთითოთ საიტისთვის ციტატების დაყენების დირექტივები, ასე რომ...

იმავე საქაღალდეში შექმენით ცარიელი (0 ბაიტი) ფაილი data.txt (არასავალდებულოა, თუ ყველა უფლება კონფიგურირებულია).

File.htaccess AddDefaultCharset utf-8 php_flag magic_quotes_gpc გამორთულია php_flag magic_quotes_runtime off php_flag magic_quotes_sybase გამორთულია

ხედავთ რა მოხდა და შემატყობინეთ თქვენს მიერ აღმოჩენილი პრობლემების შესახებ, დავწერე სცენარი ძალიან სწრაფად, 2 ნაბიჯში და შეიძლება არ მოვიფიქრე რამე :)

სასარგებლო ფრაგმენტების (კოდების) კოლექცია. კოდები განკუთვნილია საერთო ამოცანებისთვის თემის რედაქტირების ან შექმნისას.

როგორც წესი, მთელი ეს კოდი უნდა განთავსდეს თემის functions.php ფაილში. ან, შეგიძლიათ შექმნათ ცალკე.php ფაილი, მოათავსოთ კოდი იქ და დააკავშიროთ ფაილი თემის functions.php-ს ასე:

// დაკავშირება snippets require_once "functions-snippets.php";

CSS გამოჩენა TinyMCE რედაქტორისთვის

აკავშირებს სტილის ფაილს WordPress TinyMCE რედაქტორთან. ამ გზით ჩვენ შეგვიძლია დავაყენოთ რედაქტორის სტილები ადმინისტრაციულ პანელში და პოსტის რედაქტირებისას ვნახოთ, როგორ გამოიყურება ის წინა ბოლოში.

// TinyMCE რედაქტორის სტილები // თქვენ უნდა შექმნათ ფაილი "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-ს წინა ბოლოდან add_filter("show_admin_bar", "__return_false"); ## ჩართეთ ვიჯეტის მხარდაჭერა. დაამატეთ არე ვიჯეტებისთვის if(function_exists("register_sidebar"))( register_sidebar(array("before_widget" => "", "after_widget" => "", "fore_title" => "", "after_title" => "" , ));)

პერსონალური მენიუს მხარდაჭერის გააქტიურება

რეგისტრირებს არეალს (მდებარეობას) მენიუსთვის და რთავს მენიუს მხარდაჭერას. ამ კოდის ადმინისტრაციულ პანელში დაინსტალირების შემდეგ შესაძლებელი იქნება მორგებული მენიუების შექმნა და მათი მიმაგრება ამ კოდით შექმნილ უბნებზე. მენიუს შაბლონში ის ნაჩვენებია wp_nav_menu() ფუნქციით.

## მორგებული მენიუების დამატება register_nav_menus(array("main" => "მთავარი მენიუ", "in_footer" => "მენიუ ქვედა კოლონტიტული"));

ბმულების დამატება პოსტებისა და კომენტარების RSS არხზე

მორგებული ფონის სურათი ან ფონი ## საშუალებას გაძლევთ დააყენოთ ფონის სურათი ადმინისტრაციული პანელიდან add_theme_support("custom-background");

შედეგად, კოდი გამოვა:

body.custom-background (ფონის ფერი: #bdd96e; )

მოკლე კოდების ჩათვლით ტექსტის ვიჯეტში

ბევრი დანამატი იყენებს მოკლე კოდებს, მაგრამ ყველას არ აქვს ვიჯეტები. ამ შემთხვევაში, მოსახერხებელი იქნება მოდულის მოკლე კოდის გამოყენება "ტექსტის" ვიჯეტში.

## მოკლე კოდები "ტექსტის" ვიჯეტში if(! is_admin())( add_filter("ვიჯეტი_ტექსტი", "do_shortcode", 11); )

შემთხვევითი ტექსტი ნაგულისხმევად კონტენტის ველში ადმინისტრატორის ზონაში

ახალი ჩანაწერის (პოსტის ან გვერდის) შექმნისას ზოგჯერ მოსახერხებელია იქ რამდენიმე ჩანაწერის ახსნა, როგორ და რა უნდა დაწერო. ამისათვის შეგიძლიათ ჩასვათ ნაგულისხმევი ტექსტი შიგთავსში:

## შემთხვევითი ნაგულისხმევი ტექსტი რედაქტორისთვის add_filter("default_content", "writing_encouragement_func"); ფუნქცია write_encouragement_func($content) ( გლობალური $post_type; // ტექსტები რედაქტორისთვის, პოსტის ტიპი if($post_type == "პოსტი") ($array = array("ზოგიერთი შეტყობინება", "ზოგიერთი შეტყობინება", ); დაბრუნება $ array[ array_rand($array) ];) // ტექსტები რედაქტორისთვის, პოსტის ტიპი სხვა გვერდზე ( $array = array ("ზოგიერთი შეტყობინება", "ზოგიერთი შეტყობინება",); დაბრუნება $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; ) Has_sidebar კლასის დამატება ტეგში, თუ არის გვერდითი ზოლი

იმისათვის, რომ ეს ჰაკმა იმუშაოს, თემის ტეგმა უნდა გამოიყენოს body_class() შაბლონის ტეგი, როგორც ეს ჩვეულებრივ ხდება.

## `has_sidebar` კლასის დამატება `` ტეგში, თუ არის sidebar add_filter("body_class", "has_sidebar_func"); ფუნქცია has_sidebar_func($classes)( if(is_active_sidebar("გვერდითი ზოლი"))( // დაამატეთ კლასი $classes = "has_sidebar"; ) დააბრუნეთ $classes; )

ვიჯეტის დამატება კონსოლზე

ზოგჯერ შეიძლება სასარგებლო იყოს ვიჯეტის დამატება ადმინისტრაციული პანელის კონსოლში, რათა მოათავსოთ მნიშვნელოვანი ინფორმაცია მიმდინარე თემასთან დაკავშირებით.

## მორგებული ვიჯეტი კონსოლში ადმინისტრაციულ პანელში 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 არხში add_filter("the_excerpt_rss", "add_thumbnail_to_feed"); //add_filter("content_feed", "add_thumbnail_to_feed"); // ჩვეულებრივ, ეს ჰუკი არ გამოიყენება, მაგრამ ის ასევე შეიძლება იყოს... ფუნქცია add_thumbnail_to_feed($content)( $img = get_the_post_thumbnail(null, array(100, 80), array("align" => "მარცხნივ", " 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);

მუდმივი უნდა განისაზღვროს დანამატში ან უფრო ადრე.

დაცვა WP ვერსიის მოხსნისას

ეს აუცილებელია იმისთვის, რომ ჰაკერებმა არ იცოდნენ WP ვერსია და ვერ დაადგინონ სუსტი მხარეები. ამ კოდთან ერთად თქვენ ასევე უნდა წაშალოთ readme.html ფაილი საიტის ძირში, რადგან ის ასევე მიუთითებს მიმდინარე ვერსიაზე.

## WP ვერსიის სრული წაშლა ## თქვენ ასევე უნდა წაშალოთ readme.html ფაილი საიტის root-ში remove_action("wp_head", "wp_generator"); // სათაურიდან add_filter("the_generator", "__return_empty_string"); // არხებიდან და URL-ებიდან

გამორთეთ შეცდომის შეტყობინებები შესვლის გვერდზე

შესვლის ან პაროლის შეყვანისას შეცდომის შემთხვევაში, WP იტყობინება, თუ რა იყო შეყვანილი არასწორად: შესვლა ან პაროლი. ეს უზრუნველყოფს დამატებით ინფორმაციას პაროლის გამოცნობისთვის.

გამორთეთ ადმინისტრაციულ პანელში ფაილების რედაქტირების შესაძლებლობა თემებისა და დანამატებისთვის

ფაილების პირდაპირ ადმინისტრაციული პანელიდან რედაქტირების შესაძლებლობა შეიძლება გახდეს უსაფრთხოების დიდი ხვრელი. დავხუროთ.

## გამორთეთ ადმინისტრაციულ პანელში ფაილების რედაქტირების შესაძლებლობა თემებისა და დანამატებისთვის define("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 application/x-httpd-php .php .html .htm

ჩემი აზრით ყველაზე წარმატებული გზა. ეს HTML გვერდებს უტოლდება PHP გვერდებს, რაც იმას ნიშნავს, რომ PHP ყველა ფუნქციის გამოყენება ახლა შესაძლებელია HTML გაფართოების მქონე გვერდებზე. თუ არ გაქვთ წვდომა .htaccess ფაილზე, მაშინ შეგიძლიათ დაწეროთ წერილი ჰოსტინგის კომპანიას და თავაზიანად სთხოვოთ ადმინისტრატორებს შეიყვანონ საიტისთვის საჭირო მნიშვნელობა Apache-ს კონფიგურაციაში (httpd.conf).

სხვათა შორის, თუ მანამდე საიტი იყენებდა SSI-ს შემდეგნაირად:

შემდეგ ახალ PHP მდგომარეობაში ეს კოდი უნდა შეიცვალოს:

კარგი, ეს ყველაფერია, ვფიქრობ, ერთ-ერთი ზემოაღნიშნული მეთოდი დაგეხმარებათ.