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

Kaasake kohandatud mallid meie WordPressi pistikprogrammidesse

16

Ma arvan, et üks alahinnatumaid aspekte – või võib-olla üks harva arutatud aspekte kohandatud pistikprogrammide arendamise juures – on võimalus lisada meie WordPressi pistikprogrammidesse kohandatud malle.

Ja ausalt öeldes ma saan sellest aru: ma olen üsna kindel, milline peaks olema pistikprogramm ja mis peaks olema teema.

See on:

  • teemad on esitluseks,
  • pluginad on funktsionaalsed.

Kui ma lisan pistikprogrammi malle, kas ma ei tee sama, mis siis, kui arendajad lisavad oma teemadesse funktsioone?

Nagu paljude asjade puhul, mis on arenduses, arvan, et see sõltub. Ma mõtlen, et paljude funktsioonide lisamine, mis teid teemasse lukustab, on midagi, mille fänn ma ei ole. Samamoodi, kui teil on plugin, mis on mõeldud esiotsa andmete esitlemiseks ja on teemaagnostiline, on see mõistlik.

Seetõttu peate oma otsustes olema mõistlik.

Sellest hoolimata saame kasutada kohandatud mallide lisamisel oma WordPressi pistikprogrammidesse tavalisi toiminguid.

Ja seda see postitus näitab.

Kui kavatsete lisada pistikprogrammi kohandatud malle, siis eeldan, et kasutate nii üksik- kui ka arhiivimalle. Kui ei, kasutage ainult allolevaid konkse ja koodi, mida vajate.

Kaasake kohandatud mallid meie WordPressi pistikprogrammidesse

Kuid mõlema jaoks teadke järgmist:

Nende konksude abil saate WordPressile öelda, kus teie pistikprogrammis asuvad kohandatud mallid.

Mallide korraldamine

Minu jaoks on tavaliselt  pistikprogrammis mallide kataloog, mis asub varade, src -i ja hankijate kataloogidega samal tasemel  .

Kaasake kohandatud mallid meie WordPressi pistikprogrammidesse

See muudab nende asukoha leidmise lihtsaks ja annab järjekindla võimaluse lisada need kõigisse teie loodud pistikprogrammidesse. Lõppkokkuvõttes võib öelda, et me oleme kasutatavates tavades järjekindlad.

Kaasa arvatud mallid

Eeldades, et teil on  mall single-acme.php ja archive-acme.php mall, on seda lihtne lisada. Ja kuigi ma olen rohkem objektorienteeritud programmeerimise kasutamise fänn, näitan, et kaasan need mallid protseduurikoodi kasutades.

Soovi korral on selle koodi lihtne objektorienteeritud koodiks teisendada. Lisaks eeldan, et lisate selle ka kohandatud postitustüüpide jaoks.

Kui soovite need mallid lihtsalt kaasata, võite kohandatud postituse tüübi tingimuse alati välja jätta, kuid minu kogemuse põhjal on minu arvates haruldane, et need olukorrad ei kasuta kohandatud postituse tüüpe, kuid ma ei tea teie olukorda.

See tähendab, et siin on kood.

Konksude määratlemine

Esiteks peame määratlema konksud. See on suhteliselt lihtne, kuna me kasutame ülalkirjeldatud konkse.

Esiteks üks mall :

<?php

add_action('single_template', 'acmeIncludeSingleTemplate');
/**
 * Includes a custom, single template as included in a plugin. If
 * the template is being viewed for a custom post type then use it;
 * otherwise, use the template that's provided by WordPress at runtime.
 *
 * @param  string $originalTemplate the path to the original template
 *
 * @return string the path to the original template or the custom template.
 */
function acmeIncludeSingleTemplate($originalTemplate)
{
   // More to come...
}

Ja siis arhiivi mall :

<?php

add_action('archive_template', 'acmeIncludeArchiveTemplate');
/**
 * Includes a custom, archive template as included in a plugin. If
 * the template is being viewed for a custom post type then use it;
 * otherwise, use the template that's provided by WordPress at runtime.
 *
 * @param  string $originalArchiveTemplate the path to the original template
 *
 * @return string the path to the original template or the custom template.
 */
function acmeIncludeArchiveTemplate($originalArchiveTemplate)
{
  // More to come...
}

Ja nüüd saame rakendada iga funktsiooni koodi.

Koodi lisamine

Esiteks vaatame ühte malli :

<?php

add_action('single_template', 'acmeIncludeSingleTemplate');
/**
 * Includes a custom, single template as included in a plugin. If
 * the template is being viewed for a custom post type then use it;
 * otherwise, use the template that's provided by WordPress at runtime.
 *
 * @param  string $originalTemplate the path to the original template
 *
 * @return string the path to the original template or the custom template.
 */
function acmeIncludeSingleTemplate($originalTemplate)
{
  $singleTemplate = plugin_dir_path(
    dirname(
      __DIR__) );
  $singleTemplate .= '/templates/single-acme.php';

  if ('acme-cpt' === get_post_type(get_the_ID())) {
      if (file_exists($singleTemplate)) {
          return $singleTemplate;
      }
  }

  return $originalTemplate;
}

Ja nüüd arhiivi mall :

<?php

add_action('archive_template', 'acmeIncludeArchiveTemplate');
/**
 * Includes a custom, archive template as included in a plugin. If
 * the template is being viewed for a custom post type then use it;
 * otherwise, use the template that's provided by WordPress at runtime.
 *
 * @param  string $originalArchiveTemplate the path to the original template
 *
 * @return string the path to the original template or the custom template.
 */
function acmeIncludeArchiveTemplate($originalArchiveTemplate)
{
  $archiveTemplate = plugin_dir_path(
    dirname(
      __DIR__) );
  $archiveTemplate .= '/templates/archive-acme.php';

  if ('acme-cpt' === get_post_type(get_the_ID())) {
      if (file_exists($archiveTemplate)) {
          return $archiveTemplate;
      }
  }

  return $originalArchiveTemplate;
}

Kui olete koodile tähelepanelikult tähelepanu pööranud, teate, et seal on väga vähe erinevusi. Tegelikult saab üldise protsessi kirjeldada järgmiselt:

  1. määratlege konks,
  2. leidke mall,
  3. kontrollige kohandatud postituse tüüpi,
  4. mall on olemas, kasutage seda
  5. muul juhul kasutage vaikemalli

Ja see on protsess nii üksik- kui ka arhiivimallide jaoks.

Ühilduvate mallide kirjutamine

Ja lõpuks, ja see on eriti oluline, kui soovite malli võimalikult agnostiliseks muuta, proovin pistikprogrammiga seotud sisu kuvamisel kasutada võimalikult palju sisseehitatud WordPressi mallimärgendeid. See võimaldab teema arendajatel seda hõlpsasti oma teemaga sobivaks kujundada.

Ei, te ei saa mahutada kõiki teemasid, kuid selline on WordPressi teemade olemus. Eesmärk on võtta mallist andmete toomisel ja renderdamisel võimalikult palju tööd, et esiotsa arendajad saaksid seda hõlpsalt hallata.

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