Als Webdesigner verstößt es gegen unsere Natur, den Zugriff auf unseren Code einzuschränken. Uns wird beigebracht, die Kompatibilität unserer Websites zu maximieren und nach Möglichkeit rückwärtskompatibel zu sein. um progressiv verbesserte und anmutig erniedrigende Websites zu erstellen. Wenn wir es mit IE1 schaffen können, ist das keine schlechte Sache ...

Das Problem, zumindest für WordPress-Entwickler, ist, dass WordPress ein Monster ist; es wird dich und dein schönes kleines Projekt ganz schlucken, wenn du es lässt.

Wenn Sie ein WordPress-Theme erstellen, entweder als maßgeschneiderter Job für einen bestimmten Kunden oder als Wiederverkauf auf einem der vielen WordPress-Marktplätze, kann Ihr Ziel niemals sein, alles abzudecken, was jemals Teil von WordPress war. Stattdessen sollte Ihr Ziel darin bestehen, die wichtigsten Funktionen, Funktionen und Filter bestmöglich zu nutzen, um die aktuelle Codebasis zu maximieren.

Als Profi ist Ihre Zeit Geld, je länger Sie für Ihre Entwicklung aufwenden, desto weniger Gewinn erzielen Sie; Es ist eine einfache Gleichung. Die Größe von WordPress bedeutet, dass Sie 80% Ihrer Zeit damit verbringen können, 20% des Marktes zu bedienen. Viel besser, 80% der Zeit damit zu verbringen, 80% des Marktes zu bedienen. In Bezug auf Qualitätsprodukt und Ihr eigenes Bankguthaben ist es der sicherste Ansatz.

Im 14 wichtige WordPress-Funktionen, um die Themenentwicklung zu starten Wir haben einige der Funktionen durchgegangen, die ich in die functions.php meines Startthemas aufgenommen habe. In diesem Artikel behandeln wir eine weitere wichtige Funktion, die auf Ihrer Liste der wichtigsten WordPress-Funktionen gehen sollte. Es wird dir sowohl Kopf als auch Herz ersparen, schmerzt die Straße hinunter.

WordPress begrenzt bereits die Rückwärtskompatibilität

Wenn ein vermeidbarer Exploit die Seite Ihres Kunden (die auf Ihrem Thema läuft) in die Knie zwingt, wen denken Sie, werden sie anrufen? Lass mich dir das Rätselraten ersparen: Du bist es, m'kay? Es spielt keine Rolle, dass das, was das Problem verursacht, überhaupt nicht deine Schuld ist, für den Kunden ist es nur wichtig, dass du der nächste Link zu dem möglichen Problem bist. Das letzte, an das sie sich erinnern, ist, dich einzustellen, um ein neues Thema für sie zu erstellen.

Wenn Sie bei der Überprüfung feststellen, dass die Website des Kunden immer noch auf WordPress läuft, die älter ist als die aktuelle stabile Version, nehmen Sie sich ein paar Sekunden und schlagen Sie sich ins Gesicht: zuerst die linke Wange, dann die rechte Wange. Dein Thema sollte es ihnen nicht erlauben, das zu tun!

Wenn Sie seit Version 3.6 von WordPress aufmerksam geworden sind, werden Sie feststellen, dass eine Funktion ziemlich hoch oben in der functions.php des Standardthemas ist, die die Verwendung des Standarddesigns auf Versionen von WP neuer als 3.6 einschränkte. In der Tat ist es die zweite Funktion in Twenty Fourteen Funktionen.php definiert!

Diese Funktion sieht ungefähr so ​​aus:

/*** Twenty Fourteen only works in WordPress 3.6 or later.*/if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {require get_template_directory() . '/inc/back-compat.php';}

Wir interessieren uns für den Inhalt dieser back-compat.php- Datei. Die dort definierten Funktionen sind für die Verwendung mit unseren eigenen Themen geeignet.

Kein Land für altes WordPress

Es ist fast egal, welche Funktionen Sie implementieren, aber wenn möglich, beschränken Sie die Verwendung Ihrer Designs auf relativ neue Versionen von WordPress. Dadurch wird sichergestellt, dass der Endbenutzer seine Installation aktualisiert (was für sie in Bezug auf die Sicherheit umso besser ist) und sicherstellt, dass Sie den Großteil Ihrer Entwicklungszeit für die Mehrheit der Benutzer ausgeben.

Definieren der Funktion

Um dies zu erreichen, verwenden wir die PHP-Funktion version_compare () , um die aktuell installierte Version von WordPress mit der neuesten verfügbaren Version zu vergleichen und dabei sicherzustellen, dass die neueste installierte Version nicht niedriger als 3,6 ist. 3.6 ist keine Empfehlung, nur ein Beispiel. Diese Funktion sieht ungefähr so ​​aus:

if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {// do (or do not) somethingfunction butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' ); // we add some admin notices here (we haven't defined this function yet)}add_action( 'after_switch_theme', 'butter_never_get_old' );}

Diese Funktion definiert eine Aktionsfunktion butter_never_get_old () , die nur ausgeführt wird, wenn die Kernfunktion after_switch_theme () aufgerufen wird. Bisher macht die Funktion butter_never_get_old () , die in unserer Versionsprüfung enthalten ist, Folgendes:

  1. Überprüft, welche Version von WordPress derzeit installiert ist
  2. Stellt sicher, dass diese Version neuer als Version 3.6 ist
  3. Führt den kosmisch relevanten If / Else aus:
  4. Wenn es ist: Aktivieren Sie das Thema.
  5. Wenn nicht: Aktivieren Sie das Design nicht. Stattdessen re / aktivieren Sie das Standarddesign und, um nett zu sein, geben Sie eine nette kleine Nachricht aus, die den Benutzer anweist, seine lächerlich alte Installation zu aktualisieren. Komm schon, Opa!

Nudge, schubse! Upgrade das s #% *

Als nächstes müssen wir die butter_step_your_game_up () -Funktion definieren, die unsere Admin-Meldungen ausdruckt , wenn etwas schief gehen sollte, was angeblich bedeuten würde, dass die WP-Version älter ist, als wir es gerne hätten.

function butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You're currently using version %s. Please upgrade.', 'butter' ), $GLOBALS['wp_version'] );printf( '

%s

', $update_message );}

Die obige Funktion butter_step_your_game_up () setzt unsere übersetzbare Fehlermeldung in der Variable $ update_message wie definiert (dieses Thema benötigt ... etc), die dann gedruckt und dem Benutzer angezeigt wird (aus der zuvor definierten Funktion butter_never_get_old () ) und visuell im Inneren ein Div mit der Klasse "Fehler". Mit dieser Nachricht können Sie dann wie gewünscht stylen.

Alles in allem sollte unsere Funktion so aussehen:

if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {// This function deactivates our newly activated theme if WP isn't newer than 3.6// It then re/activates the default themefunction butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' );}add_action( 'after_switch_theme', 'butter_never_get_old' );// This function, called from within the above function// outputs the relevant message that nudges the theme's user// to upgradefunction butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You are currently using version %s. Please upgrade!', 'butter' ), $GLOBALS['wp_version'] );printf( '

%s

', $update_message );} }

Damit stellen Sie sicher, dass Ihr Design auf WordPress-Installationen, die älter als Version 3.6 sind, nicht aktiviert werden kann.

Halte es sauber

Soweit möglich, sollten Sie Ihre Funktionen.php sauber halten. Es sollte sauber in dem Sinne sein, dass Sie in der Lage sein sollten, schnell zu scannen und sofort zu erkennen, was jede Funktion macht. Zu diesem Zweck möchten wir vielleicht unsere Funktion in einen Include-Ordner verschieben.

Falls noch nicht geschehen, erstellen Sie einen Ordner und benennen Sie ihn in das Verzeichnis Ihres Themas. In diesem erstellen Sie eine PHP-Datei und benennen Sie diese zurück-compat.php . Kopieren Sie den Inhalt der Funktion, die wir gerade erstellt haben, und fügen Sie ihn nur in versions.compare () in functions.php ein:

if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {require get_template_directory() . '/inc/back-compat.php';}

Fügen Sie in der Datei /inc/back-compat.php die zuvor definierten Funktionen ein:

function butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' );}add_action( 'after_switch_theme', 'butter_never_get_old' );function butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You are currently using version %s. Please upgrade!', 'butter' ), $GLOBALS['wp_version'] );printf( '

%s

', $update_message );}

Fazit

Es ist immer schwierig, einem guten Entwickler zu sagen, dass er die Kompatibilität seines Codes einschränken muss. Aber die schiere Größe der WordPress-Codebasis, insbesondere wenn Sie sich auf die Rückwärtskompatibilität konzentrieren, macht die Begrenzung des Umfangs Ihres Themas zu einer praktischen Notwendigkeit. WordPress selbst sollte dabei auf seine Gültigkeit hinweisen.

Und jetzt, befreit von den ständigen Hindernissen, die veralteter Code bietet, kannst du deine Energien dort konzentrieren, wo sie hingehören: auf die unglaubliche Kraft von WordPress.

Vorgestelltes Bild / Thumbnail, verwendet Kompatibilitätsbild über Shutterstock.