Predávanie parametrov funkciám vo wordpresse

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');

Posted

in

by

Comments

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *