Φόρμες HTML. Κατάργηση της έκδοσης WP

Το HitmanPro εντοπίζει, προσδιορίζει και αφαιρεί ιούς, λογισμικό υποκλοπής spyware, Trojans, rootkits και άλλο κακόβουλο λογισμικό.

Το βοηθητικό πρόγραμμα χρησιμοποιεί τη δική του μηχανή ανάλυσης συμπεριφοράς και εξέτασης συμπλέγματος αρχείων, καθώς και καινοτόμο τεχνολογία σάρωσης cloud που χρησιμοποιεί βάσεις δεδομένων προστασίας από ιούς SophosLabs, Kaspersky και Bitdefender. Ο σαρωτής HitmanPro εντοπίζει και αφαιρεί δυνητικά κακόβουλες απειλές με ελάχιστη επίδραση στην απόδοση του συστήματος.

* Το HitmanPro είναι ένας δωρεάν σαρωτής προστασίας από ιούς. Η δυνατότητα διαγραφής είναι διαθέσιμη για 30 ημέρες δωρεάν.

Βασικά χαρακτηριστικά του HitmanPro

Μπορεί το antivirus σας να χειριστεί τις πιο πρόσφατες απειλές;

Μια νέα πηγή κακόβουλου λογισμικού μπορεί να βρεθεί οπουδήποτε, ακόμα και σε αξιόπιστους ιστότοπους. Αυτές οι απειλές μπορούν να χρησιμοποιήσουν διάφορες τεχνικές για να αποφύγουν την προστασία από ιούς. Το HitmanPro έχει σχεδιαστεί για να λειτουργεί με προστασία από ιούς και χρησιμοποιεί βαθιά ανάλυση συμπεριφοράς για να βρει και να εξουδετερώσει απειλές μηδενικής ημέρας - σύγχρονες απειλές που προσπαθούν να αποφύγουν τον εντοπισμό.

Ανίχνευση συμπεριφοράς + συλλογική εμπειρία

Αντί να χρησιμοποιεί ορισμούς υπογραφής για τον εντοπισμό κακόβουλου λογισμικού, το HitmanPro εξετάζει τη συμπεριφορά κάθε αρχείου για κακόβουλη δραστηριότητα. Αυτή η προσέγγιση δίνει στο HitmanPro τη δυνατότητα να μπλοκάρει το πιο πρόσφατο ύπουλο κακόβουλο λογισμικό και ιούς προτού εντοπιστούν. Το HitmanPro συνδέεται επίσης με τη βάση δεδομένων κακόβουλου λογισμικού SophosLabs για να εντοπίσει περισσότερες μορφές νέων απειλών και να τις εντοπίσει στην πηγή τους.

Καμία εγκατάσταση

Το HitmanPro καταλαμβάνει 12 megabyte και δεν απαιτεί εγκατάσταση. Το πρόγραμμα μπορεί να ξεκινήσει απευθείας από την επιφάνεια εργασίας, τη μονάδα USB, το CD/DVD ή την απομακρυσμένη αποθήκευση. Ακόμα κι αν το antivirus σας ελέγχεται από κακόβουλο λογισμικό ή ransomware, το 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; )

Η σωστή μετάδοση της συμβολοσειράς 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. Αυτό θα προσφέρει κάποια ευκολία - μετά την εισαγωγή μιας νέας καταχώρισης, τα δεδομένα της θα παραμείνουν στη φόρμα και θα είναι δυνατή η εισαγωγή άλλης καταχώρισης, ελαφρώς διαφορετικής ως προς το όνομα ("Ivanova" μετά το "Ivanov").

Λοιπόν, η επιστροφή από ενότητα σε μονάδα είναι απολύτως τυπική - μέσω της τυπικής λειτουργίας κεφαλίδας. Να θυμάστε ότι μπορεί να χρησιμοποιηθεί μόνο εάν η μονάδα δεν έχει ακόμη εξάγει τίποτα στο πρόγραμμα περιήγησης.

αρχείο add.php

Τώρα σχετικά με την επεξεργασία, θα εφαρμοστεί στο edit.php. Η φόρμα επεξεργασίας είναι σχεδόν ίδια με τη φόρμα προσθήκης, απλώς ήμασταν πολύ τεμπέληδες για να δημιουργήσουμε μια ξεχωριστή λειτουργία για την εμφάνιση της φόρμας. Το πιο σημαντικό είναι ότι η ίδια η ενότητα θα είναι ένας επεξεργαστής δεδομένων που μεταδίδονται μέσω της φόρμας επεξεργασίας και επομένως πρέπει να διακρίνει την κατάσταση όταν μόλις καλείται από αυτήν που ο χρήστης έκανε κλικ στο "Αποθήκευση". Η τελευταία εργασία είναι να ελέγξετε

Αν (!empty($_POST["υποβολή"]) && !empty($name) && isset($number) && isset($id)) (

προσδιορίζοντας εάν πατήθηκε το κουμπί και αν μεταφέρθηκαν όλα τα δεδομένα. Δεύτερος κλάδος -

Διαφορετικά εάν (isset($a[$id])) (

προορίζεται για την περίπτωση που υπάρχει μια καταχώρηση στον πίνακα $a, ο αριθμός της οποίας μεταβιβάζεται στο σενάριο και πρέπει να επεξεργαστεί. Ο αριθμός καταχώρισης αποθηκεύεται σε ένα κρυφό πεδίο HTML.

Αρχείο edit.php

Η ενότητα αφαίρεσης εγγραφής del.php θα είναι αρκετά απλή, το μόνο που χρειάζεται είναι να λάβετε μια έγκυρη εγγραφή $id (αριθμός στοιχείου στον πίνακα $a), να αφαιρέσετε το αντίστοιχο στοιχείο από τον πίνακα, να ξαναγράψετε το αρχείο και να επιστρέψετε στην κύρια λειτουργική μονάδα σελίδα.

Αρχείο del.php

Τέλος, η ενότητα ταξινόμησης sort.php θα εισάγει ένα νέο πρόβλημα - πώς να ταξινομήσετε τις συμβολοσειρές Unicode αλφαβητικά χωρίς να διακρίνετε μεταξύ κεφαλαίων και πεζών γραμμάτων; Η "άμεση" ταξινόμηση με χρήση της τυπικής συνάρτησης ταξινόμησης δεν είναι καθόλου κατάλληλη - θεωρεί ότι ένα πεζό και ένα κεφαλαίο γράμμα είναι διαφορετικοί χαρακτήρες. Δεν ορίσαμε τις τοπικές ρυθμίσεις, ειδικά επειδή δεν υπάρχει ενιαία φόρμα καταχώρισης για όλα τα λειτουργικά συστήματα για να την εγκαταστήσουν.

Ας περιοριστούμε στην επιλογή usort από όλη την ποικιλία συναρτήσεων για την ταξινόμηση πινάκων με μια προσαρμοσμένη συνάρτηση για σύγκριση στοιχείων.

Η χρησιμοποιούμενη "άμεση" σύγκριση συμβολοσειρών Unicode ενός χαρακτήρος, φαίνεται, δεν είναι απολύτως σωστή, αλλά το strcmp συγκρίνει τις συμβολοσειρές byte-by-byte και δεν είναι κατάλληλη για εμάς, αλλά γενικά η σύγκριση είναι σωστή όποιοςΟι συμβολοσειρές στο Unicode είναι πολύ δύσκολο έργο... Όλα λειτούργησαν για μένα στο σύστημα για τα ρωσικά και τα αγγλικά, για παράδειγμα, μετά την ταξινόμηση πήρα φυσικές παραγγελίες λέξεων, όπως π.χ.

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

Ταξινόμηση αρχείων.php

Το μόνο που έχουμε να κάνουμε είναι να δημιουργήσουμε ένα αρχείο στο φάκελο με το όνομα .htaccess , όπου θα ορίσουμε την προεπιλεγμένη κωδικοποίηση σε Unicode και θα υποδείξουμε τις οδηγίες για τον ορισμό εισαγωγικών για τον ιστότοπο, έτσι...

Στον ίδιο φάκελο, δημιουργήστε ένα κενό (0 byte) αρχείο 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 του θέματος ως εξής:

// connect 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); function my_admin_css())( wp_enqueue_style("my-wp-admin", get_template_directory_uri() ."/wp-admin.css"); )

Αφαίρεση της γραμμής διαχειριστή από το μπροστινό μέρος

Η γραμμή διαχειριστή μπορεί να παρεμποδίσει όταν το θέμα χρησιμοποιεί σταθερά (κινούμενα) μπλοκ. Σε τέτοιες περιπτώσεις, μερικές φορές είναι πιο εύκολο να αφαιρέσετε αυτή τη ράβδο.

## Αφαιρεί τη γραμμή διαχειριστή από το μπροστινό add_filter("show_admin_bar", "__return_false"); ## Ενεργοποίηση υποστήριξης widget. Προσθέστε μια περιοχή για γραφικά στοιχεία 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; )

Συμπερίληψη σύντομων κωδικών στο γραφικό στοιχείο Κείμενο

Πολλά πρόσθετα χρησιμοποιούν σύντομους κωδικούς, αλλά δεν έχουν όλα γραφικά στοιχεία. Σε αυτήν την περίπτωση, θα ήταν βολικό να χρησιμοποιήσετε τον σύντομο κωδικό της προσθήκης στο γραφικό στοιχείο "Κείμενο".

## Σύντομοι κώδικες στο γραφικό στοιχείο "Κείμενο" 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) ];) // Κείμενα για τον επεξεργαστή, σελίδα τύπου ανάρτησης other ( $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"]); return $contactmethods; ) Προσθήκη πεδίων σε προφίλ στο admin: facebook, twitter ## Προσθέτει πεδία στο προφίλ: AIM, Yahoo IM, Jabber / Google Talk add_filter("user_contactmethods", "add_contactmethod"); function add_contactmethod($contactmethods) ( $contactmethods["twitter"] = "Twitter"; $contactmethods["facebook"] = "Facebook"; return $contactmethods; ) Προσθήκη της κλάσης has_sidebar στην ετικέτα εάν υπάρχει πλαϊνή γραμμή

Για να λειτουργήσει αυτό το hack, η ετικέτα θέματος πρέπει να χρησιμοποιεί την ετικέτα template 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; )

Προσθήκη widget στην κονσόλα

Μερικές φορές μπορεί να είναι χρήσιμο να προσθέσετε ένα γραφικό στοιχείο στην κονσόλα του πίνακα διαχείρισης για να τοποθετήσετε σημαντικές πληροφορίες σχετικά με το τρέχον θέμα.

## Προσαρμοσμένο γραφικό στοιχείο στην κονσόλα στον πίνακα διαχείρισης 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"); ) function custom_dashboard_help() (echo "

Καλώς ήρθατε στο θέμα "Το θέμα μου"! Εδώ είναι μερικές σημειώσεις για το θέμα.";)

Λαμβάνουμε αυτό το widget:

Συμπεριλαμβανομένου ενός σεναρίου απάντησης σχολίου

Αυτό το σενάριο μετακινεί τη φόρμα σχολίου όταν κάνετε κλικ στο κουμπί "Απάντηση".

## Σύνδεση του σεναρίου απάντησης σχολίου add_action("wp_footer", "enable_threaded_comments"); συνάρτηση enable_threaded_comments())( if(is_singular() && comments_open() && get_option("thread_comments")) wp_enqueue_script("comment-reply"); )

Εικόνες Ενεργοποιήστε τις μικρογραφίες αναρτήσεων

Από προεπιλογή, οι αναρτήσεις δεν έχουν μπλοκ όπου μπορείτε να ορίσετε μια μικρογραφία ανάρτησης. Για να εμφανιστεί ένα τέτοιο μπλοκ, πρέπει να είναι ενεργοποιημένο. Πρέπει να ενεργοποιήσετε την υποστήριξη μικρογραφιών. Αυτό γίνεται πολύ απλά:

## Ενεργοποίηση μικρογραφιών αναρτήσεων 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.

## Προσθήκη μικρογραφίας στο add_filter της ροής RSS("the_excerpt_rss", "add_thumbnail_to_feed"); //add_filter("the_content_feed", "add_thumbnail_to_feed"); // συνήθως αυτό το άγκιστρο δεν χρησιμοποιείται, αλλά μπορεί επίσης να είναι... συνάρτηση add_thumbnail_to_feed($content)( $img = get_the_post_thumbnail(null, array(100, 80), array("align" => "left", " 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); ) // Σύνδεση του σεναρίου html5 για IE με 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 στη ρίζα του ιστότοπου remove_action("wp_head", "wp_generator"); // από την κεφαλίδα add_filter("the_generator", "__return_empty_string"); // από ροές και διευθύνσεις URL

Απενεργοποιήστε τα μηνύματα σφάλματος στη σελίδα σύνδεσης

Σε περίπτωση σφάλματος κατά την εισαγωγή στοιχείων σύνδεσης ή κωδικού πρόσβασης, το WP αναφέρει τι ακριβώς εισήχθη λανθασμένα: σύνδεση ή κωδικός πρόσβασης. Αυτό παρέχει πρόσθετες πληροφορίες για όσους μαντεύουν τον κωδικό πρόσβασης.

Απενεργοποιήστε τη δυνατότητα επεξεργασίας αρχείων στον πίνακα διαχείρισης για θέματα και προσθήκες

Η δυνατότητα επεξεργασίας αρχείων απευθείας από τον πίνακα διαχείρισης μπορεί να γίνει μια μεγάλη τρύπα ασφαλείας. Ας το κλείσουμε.

## Απενεργοποιήστε τη δυνατότητα επεξεργασίας αρχείων στον πίνακα διαχείρισης για θέματα και προσθήκες define("DISALLOW_FILE_EDIT", true);

Κλείστε τη δημοσίευση μέσω xmlrpc.php

Από προεπιλογή, είναι ενεργοποιημένη η δυνατότητα δημοσίευσης αναρτήσεων μέσω του αρχείου xmlrpc.php.

Αυτή είναι μια ευκαιρία για δημοσίευση αναρτήσεων από έξω, για παράδειγμα από email... Τις περισσότερες φορές, αυτή η λειτουργία δεν χρειάζεται και μπορεί να υπάρχουν πιθανές τρύπες σε αυτήν. Ως εκ τούτου, τις περισσότερες φορές είναι επιθυμητό να το απενεργοποιήσετε. Παρεμπιπτόντως, σε παλαιότερες εκδόσεις του 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 αυτός ο κώδικας πρέπει να αντικατασταθεί με:

Λοιπόν, αυτό είναι όλο, νομίζω ότι μία από τις παραπάνω μεθόδους θα βοηθήσει.