✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Verwenden von Funktionen anstelle von Globals: get_post_field

20

Da sich PHP weiter weiterentwickelt hat und WordPress (und seine Entwicklerwirtschaft) daran arbeiten, mehr der moderneren Funktionen zu verwenden, sehen wir immer noch die Verwendung von Globals in WordPress.

Bis zu einem gewissen Grad ist es unvermeidlich: Bedeutende Teile der Anwendung wurden unter Verwendung von Globals erstellt, als dies die Einrichtung war, die ein Hauptmerkmal war; andere Teile haben sich jedoch weiterentwickelt, indem sie Klassen oder Funktionen bereitstellen, die uns daran hindern, dies zu tun.

Ein typisches Beispiel: get_post_fieldist eine solide Alternative zur Verwendung des $postGlobal, das viele der gleichen Informationen in einer etwas moderneren (und wohl sichereren) Art des Lesens der Daten bereitstellt.

Für viele ist die Verwendung von etwas wie dem Folgenden eine gängige Praxis:

<?php
/**
 * Retrieves the slug for the current post via the current post's
 * post_name property.
 *
 * @return string the slug of the post.
 */
function getPostSlug(): string
{
  global $post;
  return $post->post_name;
}

Es ist nicht ungewöhnlich, so etwas wie get_the_title(get_the_ID());durchgehenden Code zu sehen, was eine gute Sache ist, aber es gibt immer noch Zeiten, in denen wir Code sehen, der auf bestimmte Aspekte des aktuellen Beitrags zugreift.

Verwenden von Funktionen anstelle von Globals: get_post_field

Und ich frage mich, wie notwendig dieser Praxis wirklich die get_post_fieldFunktion gegeben wird. Aus der Codereferenz:

Abrufen von Daten aus einem Beitragsfeld basierend auf der Beitrags-ID.

Beispiele für das Post-Feld sind „post_type“, „post_status“, „post_content“ usw. und basieren auf der Post-Objekteigenschaft oder den Schlüsselnamen.

Ein ähnliches Beispiel für diese Funktion wäre die get_user_byFunktion, bei der Sie eine bestimmte Zeichenfolge an die Funktion übergeben, für die Sie Informationen abrufen möchten, sowie eine ID (oder das vollständige Post-Objekt, aber wenn die ID ausreicht, warum nicht?).

Der Unterschied besteht hier darin, dass Sie den Wert des angeforderten Felds oder eine leere Zeichenfolge (anstelle eines Fehlers oder null oder falsch) abrufen, wenn die Anforderung fehlschlägt. Das bedeutet, dass wir eine Bedingungs- oder Schutzklausel schreiben müssten, um einen solchen Fall zu behandeln.

Ein vollständiger Anwendungsfall dieser Funktion und des Codes kann also einige Funktionen erfordern :

<?php

/**
 * Generates a boolean value based on the presence of a post slug.
 *
 * @return bool True if there is a slug; otherwise, false.
 */
function hasPostSlug(): bool
{
  return ('' === getPostSlug());
}

/**
 * Retrieves the slug for the current post via the get_post_field
 * API function.
 *
 * @return string the slug of the post.
 */
function getPostSlug(): string
{
  return get_post_field('post_name', get_the_ID());
}

Das lässt sich alles so zusammenbinden :

<?php

if (hasPostSlug()) {
  echo getPostSlug();
}

Der Zweck des Teilens dieser Art von Code besteht darin, dabei zu helfen, einige der Alternativen zu teilen, die wir zu globalen Variablen haben, um auch APIs zu teilen, die vorhanden sind, aber möglicherweise nicht ausgelastet sind.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen