Keď programujete niečo pre WordPress, tak sa často stane, že nejakej fukncii potrebujete predať viac parametrov, ktoré avšak nemusia byť povinné. V takomto prípade je vhodné ak využijete funckiu wp_parse_args.
Predstavte si, že vaša funckia má mať 4 nepovinné parametre, môžete to urobiť napríklad takto:
function super_funkcia($post_type = 'post', $numberposts = 5, $order_by = 'post_date', $order = 'DESC') { ... }
Ak chcete v tomto prípade zmeniť len parameter order
, tak pri volaní funkcie musíte zadať aj prvé tri parametre. Nehovoriac o tom, že si musíte dať pozor na správne poradie. Takisto problém nastane, keby malo byť týchto parametrov napríklad pätnásť. V takomto prípade je už vhodnejšie využiť len jeden parameter, ktorým bude napríklad pole s potrebnými nastaveniami.
Presne na toto slúži už spomínaná funkcia wp_parse_args
. Hore uvedený príklad by s jej použitím mohol vyzerať nasledovne:
function super_funkcia($args = array()) { // zadefinovanie prednastavených hodôt $defaults = array('post_type' => 'post', 'numberposts' => 5, 'order_by' => 'post_date', $order = 'DESC'); // inicializácia poľa args, argumenty, ktoré neboli zadané budú mať prednastavenú hodnotu $args = wp_parse_args($args, $defaults); // a ako bonus zadeklarujeme každý parameter ako lokálnu premennú extract($args, EXTR_SKIP ); }
Ako vidíte v prípade veľkého počtu parametrov, je použitie funckie wp_parse_args
veľmi výhodné a zjavne uľahčuje prácu.
A okrem iného nemusíme parametre zadávať ako asociatívne pole, ale napríklad ako reťazec vo formáte parameter_1=hodnota¶meter_4=hodnota&...
, napríklad:
super_funkcia('post_type=post&order_by=ID');
Pridaj komentár