Categorias dos Links

No post anterior eu falei sobre a Lista de Links. No mesmo post também disse sobre as categorias. Como são categorias diferentes das categorias de post tem que existir alguma forma de ler essas informações.

Eis que eu apresento: get_categories($args).

Nos argumentos ($args), existe um parâmetro chamado ‘type’ e é ele que realiza a diferença entre um e o outro. Para os posts utiliza-se “post” e para os links utiliza-se “link”.

Anúncios

Adicionando campos personalizados na edição de Categorias

Na functions.php, adicione o código abaixo.
São permitidos somente apenas 3 campos personalizados.

<?php
	/* Edição da categoria */
	add_action('edit_category_form_fields','extra_category_fields');
	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="cat_Image_url">URL da imagem: </label></th>
			<td>
				<input type="text" name="Cat_meta[img]" id="Cat_meta[img]" size="3" style="width:60%;" value="<?php echo $cat_meta['img'] ? $cat_meta['img'] : ''; ?>"><br />
				<span class="description">Imagem para a categoria. Utilize o endereço inteiro com http://.</span>
			</td>
		</tr>
		<tr class="form-field">
			<th scope="row" valign="top"><label for="extra1">Status: </label></th>
			<td>
				<select name="Cat_meta[extra1]" id="Cat_meta[extra1]">
					<?php $class_1 = $cat_meta['extra1'] ? "selected=selected" : ""; ?>
					<option value="0" <?php echo $class_1;?>>Em andamento</option>
					<?php $class_2 = $cat_meta['extra1'] ? "selected=selected" : ""; ?>
					<option value="1" <?php echo $class_2;?>>Completo</option>
				</select><br/>
				<span class="description">Status da categoria.</span>
			</td>
		</tr>
<?php
	}

	//Salva as opções da categoria
	add_action('edited_category','save_extra_category_fileds');
	function save_extra_category_fileds( $term_id ) {
		if ( isset( $_POST['Cat_meta'] ) ) {
			$t_id = $term_id;
			$cat_meta = get_option( "category_$t_id");
			$cat_keys = array_keys($_POST['Cat_meta']);
				foreach ($cat_keys as $key){
				if (isset($_POST['Cat_meta'][$key])){
					$cat_meta[$key] = $_POST['Cat_meta'][$key];
				}
			}        
			update_option( "category_$t_id", $cat_meta );
		}
	}
?>

A página de edição de categoria será essa:

Para imprimir, utilize o código abaixo.

	<?php get_option("category_".$id_da_categoria) ?>

A página abaixo lista as categorias existentes junto com o var_dump do código acima.

Funções para o post

Depois de apresentado o WordPress, vamos ao lado prático.
Ao escrever um post você irá precisar de vários elementos para imprimir os dados. Abaixo eu vou listar os elementos junto com as suas funções. Clique em cada uma delas para saber como usá-las.

Função Sem “echo” Com “echo”
Categoria(s) the_category get_the_category
Título the_title get_the_title
Nome do autor the_author get_the_author
Conteúdo do post the_content get_the_content
Data the_date get_the_date
Tags the_tags get_the_tags
Imagens the_post_thumbnail get_the_post_thumbnail
Número de comentários comments_number

Para utilizá-las, salve o código em um arquivo “single.php”.