WordPress: prepojenie rôznych typov obsahu

Ako už isto viete, tak WordPress 3.0 ponúka možnosť tvorby vlastných typov obsahu a niekedy vznikne potreba jednotlivé typy obsahu navzájom prepojiť.

Predstavte si web o filmoch a hercoch. Máte zadefinovaný typ obsahu film s informáciami o filmoch a herec s informáciami o hercoch. V tomto prípade je vhodné tieto dva typy obsahu vzájomne prepojiť. Konkrétne by bolo vhodné ak by sa filmom dali priradiť herci, ktorý vnich hrajú.

Presne na toto slúži plugin Posts 2 Posts. Vývojárom dodáva API, ktoré takéto prepojenie umožňuje a na základe toho sa v administrácii vytvoria potrebné meta boxy, kde si užívateľ môže pohodlne navoliť prepojenia medzi jednotlivými typmi obsahu.

Dosť bolo rečí a pozrime sa na kód:

function movies_register_post_types() {
	register_post_type(
		'film',
		array(
			'label' => 'Filmy',
			'labels' => array(
				'singular_name' => 'Film'
			),
			'public' => true,
			'supports' => array('title', 'editor', 'thumbnail')
		)
	);
	
	register_post_type(
		'herec',
		array(
			'label' => 'Herci',
			'labels' => array(
				'singular_name' => 'Herec'
			),
			'public' => true,
			'supports' => array('title', 'editor', 'thumbnail')
		)
	);

	if(function_exists('p2p_register_connection_type')) {
		p2p_register_connection_type('film', 'herec');
	}
}
add_action('init', 'movies_register_post_types');

Daný kód nám zaregistruje dva nové typy obsahu film a herec a ak existuje funkcia p2p_register_connection_type() t.j. máme aktívny plugin Posts 2 Posts, tak vytvorí prepojenie medzi filmom a hercami. Následkom toho sa nám v administrácii pri editácii filmu objaví tento meta box:

Po naplnení webu obsahom a vytvorení prepojení stačí upraviť šablóny Vašej témy a pridať tam výpis prepojených príspevkov. Na to môže poslúžiť aj funkcia p2p_list_connected(). Pre ostatné funkcie si pozrite aktuálne API pluginu.

Jo a ešte sa pochválim. Prvotnú implementáciu meta boxu, ktorý umožňuje pridať viac ako jeden prepojený príspevok som vytvoril ja, keďže prvá verzia pluginu to neumožňovala. Vytvoril som to preto, lebo som to potrboval pre jeden web, na ktorom pracujem a ktorý dúfam už čoskoro pribudne v referenciách.


Posted

in

by

Comments

Pridaj komentár

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