✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Funktsioonide kasutamine globaalsete asemel: get_post_field

23

Kuna PHP on jätkanud edasiliikumist ja WordPress (ja selle arendajamajandus) töötab, et hakata kasutama rohkem kaasaegseid funktsioone, on üks asi, mida me ikka veel näeme, globaalsete funktsioonide kasutamine WordPressis.

Mingil määral on see vältimatu: rakenduse olulised osad loodi globaalsete funktsioonide abil, kui see oli põhifunktsioon; teised osad on aga edasi liikunud, pakkudes klasse või funktsioone, mis takistavad meil seda tegemast.

Näide: get_post_fieldon kindel alternatiiv $postglobaalsele kasutamisele, mis pakub palju sama teavet veidi kaasaegsemal (ja väidetavalt turvalisemal) andmete lugemisel.

Paljude jaoks on järgmise asja kasutamine tavaline praktika:

<?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;
}

Pole haruldane, et nähakse midagi sellist, nagu get_the_title(get_the_ID());kogu koodis, mis on hea, kuid siiski on aegu, kus näeme kirjutatud koodi, mis pääseb juurde praeguse postituse teatud aspektidele.

Funktsioonide kasutamine globaalsete asemel: get_post_field

Ja ma kahtlen, kui vajalik sellele praktikale tegelikult get_post_fieldfunktsioon antakse. Koodi viitest :

Andmete toomine postitusväljalt postituse ID alusel.

Postitusvälja näited on ‘post_type’, ‘post_status’, ‘post_content’ jne ning põhinevad postitusobjekti atribuudil või võtmenimedel.

Selle funktsiooni sarnane näide on get_user_byfunktsioon, kus edastate konkreetse stringi funktsioonile, mille kohta soovite teavet hankida, ja ID-d (või täielikku postitusobjekti, kuid kui ID-st piisab, siis miks mitte?).

Erinevus seisneb selles, et päringu nurjumisel hangitakse välja taotletud välja väärtus või tühi string (mitte viga või null või väär). See tähendab, et sellise juhtumi käsitlemiseks peame kirjutama tingimus- või kaitseklausli.

Nii et selle funktsiooni ja koodi täielikuks kasutamiseks võib vaja minna paari funktsiooni :

<?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());
}

Seda kõike saab kokku siduda järgmiselt:

<?php

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

Seda tüüpi koodi jagamise mõte on aidata jagada mõningaid alternatiive, mis meil on globaalsetele muutujatele, et jagada ka olemasolevaid, kuid vähekasutatud API-sid.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem