• tenho um custom taxonomy chamado ator/atriz, criei um um post type chamado BioAtor, gostaria de saber se tem como redicionar para que quando já se tenha um post type com o mesmo nome, exemplo Brad Pitt, ao clicar a pessoa seja redirecionada para esta post type, e caso não tenha, va para os arquivos taxonomy.

    Achei um código mais não era como gostaria já que ele redirecionava todas, e caso não tivesse post type, ele mandava para o index do blog.

    Agradeço desde já pela ajuda.

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O código que você acho já ajuda. Pela lógica descrita, é só tira a parte que redireciona pra home que vai se manter no taxonomy.

    Criador do tópico m4z1nh0

    (@m4z1nh0)

    Affectueux o código que encotrei foi esse:
    Fonte: http://justintadlock.com/archives/2010/08/20/linking-terms-to-a-specific-post

    Só troquei os nomes actor e person para os que utilizo.

    add_filter( 'term_link', 'my_term_to_type', 10, 3 );
    
    function my_term_to_type( $link, $term, $taxonomy ) {
    
    	if ( 'actor' == $taxonomy ) {
    		$post_id = my_get_post_id_by_slug( $term->slug, 'person' );
    
    		if ( !empty( $post_id ) )
    			return get_permalink( $post_id );
    	}
    
    	return $link;
    }
    
    function my_get_post_id_by_slug( $slug, $post_type ) {
    	global $wpdb;
    
    	$slug = rawurlencode( urldecode( $slug ) );
    	$slug = sanitize_title( basename( $slug ) );
    
    	$post_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_name = %s AND post_type = %s", $slug, $post_type ) );
    
    	if ( is_array( $post_id ) )
    		return $post_id[0];
    	elseif ( !empty( $post_id ) );
    		return $post_id;
    
    	return false;
    }

    Se puder me ajudar será muito bom.

    Obrigado

    Pelo que entendi está aparentemente certo.
    Pode ser que esteja tendo um redirecionamento indevido, ao fim desse processo.
    Você precisa descobrir como está saindo os links na função my_term_to_type().

    Faça um teste tipo assim:

    if ( 'actor' == $taxonomy )
    {
        $post_id = my_get_post_id_by_slug( $term->slug, 'person' );
        if( !empty( $post_id ) )
          $link = get_permalink( $post_id );
    }
    echo $link;
    exit;

    Vê se o retorno está certo e se bate com o endereço da página pra qual é redirecionado.
    Se o retorno for diferente do destino, então, o problema é de permalink.

    Testa aí.

    Criador do tópico m4z1nh0

    (@m4z1nh0)

    Por exemplo quando tem taxonomy e post_type com mesmo nome exemplo Angelina Jolie ele redicionar corretamenta para o post_type mais quando não tem ele exibe o permalink correto porrem não é a página de arquivo daquela taxonomy

    http://meusite.com/dvd/ator/tom-hanks/.

    Como não manjo praticamentente nada de php não sei como editar, nem sei o que esta errado neste código.

    Obrigado pela ajuda Affectueux

    Se o permalink está certo pras duas situações, então é provável que o problema esteja no arquivo do tema, que imprime o conteúdo na página.

    Você precisará criar um arquivo específico no tema para essa finalidade.
    Encontrei um post completo sobre o assunto.
    Veja: http://net.tutsplus.com/tutorials/wordpress/introducing-wordpress-3-custom-taxonomies/

    Boa sorte!

Visualizando 5 respostas - 1 até 5 (de um total de 5)
  • O tópico ‘Redirecionar uma custom taxonomy para um post type’ está fechado para novas respostas.