WordPress, informatii extra pentru categorii

Platforma de blogging WordPress mi se pare foarte utila si usor de folosit sau modificat, de aici si isistenta mea catre alti bloggeri sa treaca pe platforma WordPress, dar cu domeniu si gazduire proprie. Teoretic se poate face aproape orice iti trece prin cap cu aceasta platforma.

Avand un blog modificat dupa bunul plac, va prezint cum am adaugat informatii extra pe pagina de categorii din panoul de administrare (back-end). In poza de mai jos se vede un camp nou “Image thumnail” pe care il folosesc sa stochez link-ul catre o imagine pentru fiecate categorie. Pe prima pagina a blog-ului se pot vedea aceste imagini.

Cum functioneaza: in fisierul functions.php din folder-ul temei curente am creat doua functii care se leaga la doua hook-uri WordPress, edit_category_form_fields si edited_category. Primul afiseaza input-ul pe pagina si al doilea salveaza valoarea in baza de date.

function extra_category_fields($tag)
{
    $t_id = $tag->term_id;
    $cat_meta = get_option('category_' . $t_id);
	?>
	<tr class="form-field">
		<th scope="row" valign="top"><label for="category_image"><?php _e('Image thumnail'); ?></label></th>
		<td>
			<input type="text" name="category_meta[image]" id="category_meta[image]" value="<?php echo $cat_meta['image'] ? $cat_meta['image'] : ''; ?>"><br />
			<span class="description"><?php _e('Image, use full url with http://'); ?></span>
		</td>
	</tr>
	<?php
}
add_action ('edit_category_form_fields', 'extra_category_fields');
function save_extra_category_fileds($term_id)
{
	if (isset($_POST['category_meta']))
	{
		$t_id = $term_id;
		$cat_meta = get_option('category_' . $t_id);
		$cat_keys = array_keys($_POST['category_meta']);
		foreach ($cat_keys as $key)
		{
			if (isset($_POST['category_meta'][$key]))
			{
				$cat_meta[$key] = $_POST['category_meta'][$key];
			}
		}
		update_option('category_' . $t_id, $cat_meta);
	}
}
add_action ('edited_category', 'save_extra_category_fileds');

Pentru afisarea informatiei atribuite fiecarei cateogrii folositi script-ul de mai jos oriunde aveti nevoie.

<?php
$extra_fields_arr = get_option('category_ . ID-CATEGORIE);
if (!empty($extra_fields_arr))
{
	echo $extra_fields_arr['image'];	
}
?>

Simplu, aveti intrebari? 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *