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

WordPressi konksu kasutamine värskendamisvalikute jaoks

10

WordPressi administraatoris olevate valikute värskendamine on lihtne, eks? Peate täitma tekstivälja, märkima ruudu või vahetama raadionupu ja seejärel klõpsama nuppu Salvesta.

Kuid oletame, et peate seadistama konksu, mis käivitab, mis värskendab ka sekundaarset seotud valikut, kui see on sisse lülitatud.

Näiteks kui märkeruut tähistab suvandit, siis oletame, et soovite andmebaasis määrata suvandi, kui märkeruut on märkimata, ja seejärel kustutada selle alati, kui see valik on määratud.

Selle tegemiseks on spetsiaalselt toiming, mis muudab selle üsna lihtsaks.

Konks värskendamisvalikute jaoks

Enne mis tahes koodiga tutvumist, kuidas seda teha, öelge, et antud update_option on rakendunud. Kui see on tehtud, peate seadistama tagasihelistamise, mis käivitub alati, kui suvand on määratud.

Lisaks on järgmised kaalutlused:

  1. Kas kõnealune valik oli sisse lülitatud?
  2. Kui jah, siis kas valik on seatud (eeldades, et see oli märkeruut)?
  3. Kui ei, siis kas teil on plaan, kuidas seda juhtumit käsitleda?

Eeldades, et kõik ülaltoodu on välja mõeldud, vajate funktsiooni toimingu määratlemiseks ja funktsiooni, mis rakendab tagasihelistamist. Minu näites kasutan objektorienteeritud programmeerimist, kuid sama hästi saab seda teha ka protseduurilises programmeerimises.

Minu näites kasutan objektorienteeritud programmeerimist, kuid sama hästi saab seda teha ka protseduurilises programmeerimises.

Näide

Oletame, et teil on valik nimega user_is_disguised ja teil on andmebaasis veel üks väärtus nimega user_is_superman.

Kui kasutaja_is_disguised väärtuseks on seatud veel, tuleb kasutaja_is_superman väärtuseks määrata false. Ja kui kasutaja_is_varjatud väärtuseks on seatud false, tuleks kasutaja_is_superman väärtuseks määrata tõene.

Lõppkokkuvõttes muutuvad väärtused. Siin on näide, kuidas seda teha. Esiteks peame konksu seadistama :

<?php

/**
 * Initializes the defined actions.
 */
public function init() {

  add_action(
    'update_option',
    array( $this, 'toggle_other_option' ),
    10, 3
  );
}

Seejärel peame rakendama väärtuste vahetamise funktsiooni:

<?php

/**
 * If the given option_name is `user_is_disguised`, then toggles another option
 * in the database - `user_is_superman` - based on the specified values.
 *
 * @param string $option_name The name of the value being updated.
 * @param mixed  $old_value   The previous value of the option before updating it.
 * @param mixed  $new_value   The value of the option now that it's been updated.
 */
public function toggle_other_option( $option_name, $old_value, $new_value) {

  // If 'user_is_disguised' is not being changed, then don't worry about it.
  if (0 !== strcasecmp( $option_name, 'user_is_disguised')) {
   return; 
  }

  /* If 'user_is_disguised' is being set, then remove the Superman value; otherwise,
   * set it to true (but don't worry about autoloading it).
   */
  if ('1' === $new_value) {
    delete_option( 'user_is_superman' );
  } else {
    update_option( 'user_is_superman', true, false );
  }
}

Ja see peaks selle eest hoolitsema.

Märkus argumentide kohta

Pange tähele, et tagasihelistamine aktsepteerib kolme argumenti (mis on samuti määratletud ülaltoodud dokumentatsioonis). Need on kasulikud muudes, vähem väljamõeldud rakendustes.

Kuid võib-olla üks olulisemaid asju, mida ülaltoodud koodist eemaldada, on see, et kontrollite enne väärtuste ümberlülitamist tagasihelistamisel valiku nime.

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