Uma página, quatro possibilidades de impressão

Vamos supor que você tenha uma página e a partir dela será impresso:

  • A lista de post’s de uma determinada tag
  • A lista de post’s de uma determinada categoria
  • A lista de post’s de um determinado autor
  • ou a lista de post’s de um determinado ano e/ou mês
# Imprime o resultado encontrado #
function imprime($resultado){
	$descricao=(!empty($resultado['descricao'])) ? '<p>'.$resultado['descricao'].'</p>' : '';
	return "<h1>Post's ".$resultado["titulo"].$resultado['nome'].'</h1>'.$descricao;
}

# Tag #
# Exemplo de URL: http://localhost/teste/tag/testando/
function tag($busca){
	foreach (get_tags() as $tag){
		if($tag->slug == $busca){
			return $resultado=array("titulo"=>"da tag ", "id" => $tag->term_id, "nome" => $tag->name,"descricao" => $tag->description);
		}
	}
}

# Categoria #
# Exemplo de URL: http://localhost/teste/category/teste/
function category($busca){
	$cat=get_category_by_slug($busca);
	return $resultado=array("titulo"=>" da categoria ", "id" => $cat->term_id, "nome" => $cat->name,"descricao" => $cat->category_description);
}

# Autor #
# Exemplo de ULR: http://localhost/teste/author/admin/ #
function author($busca){
	foreach(get_users() as $u){
		if($u->user_nicename==$busca){
			$user = get_userdata($u->ID);
			return $resultado=array("titulo"=>" do autor ", "id" => $u->ID, "nome" => $user->first_name.' '.$user->last_name,"descricao" => $user->user_description);
		}
	}
}

# Mês e Ano #
# Exemplo de URL: http://localhost/teste/2012/04/ #
# Exemplo de URL: http://localhost/teste/2012/ #
function mes_ano($resultado){
	$mes_escrito = array( 1 => 'Janeiro', 2 => 'Fevereiro', 3 => 'Março', 4 => 'Abril', 5 => 'Maio', 6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro', 12 => 'Dezembro');
	
	$nome=(!empty($resultado[3])) ? $resultado[3] : '';
	$nome.=(!empty($resultado[2])) ? '/'.$resultado[2] : '';
	$nome.=(!empty($resultado[1])) ? '/'.$resultado[1] : '';
	
	return $resultado=array("titulo"=>" de ","nome"=>$nome, "descricao"=>'');
}

$url = explode('/',$_SERVER['REQUEST_URI']);

if(array_search('tag',$url)){
	$id=array_search('tag',$url)+1;
	echo imprime(tag($url[$id]));
}elseif(array_search('category',$url)){
	$id=array_search('category',$url)+1;
	echo imprime(category($url[$id]));
}elseif(array_search('author',$url)){
	$id=array_search('author',$url)+1;
	echo imprime(author($url[$id]));
}else{
	preg_match('/([0-9]{4})\/([0-9]{2})?\/([0-9]{2})?/',$_SERVER['REQUEST_URI'], $resultado);
	
	if(!empty($resultado[0])){
		echo imprime(mes_ano($resultado));
	}
}
Anúncios

2 comentários em “Uma página, quatro possibilidades de impressão

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s