• Resolvido JulyMoreira

    (@julymoreira)


    Acho que o título é meio difícil de entender o que quero fazer…
    Bom, após criar um custom post type, eu modifiquei as colunas de exibição de registros e está funcionando tudo ok.

    Mas, sempre funcionou quando eu usava o “title” para exibir o ID do post e assim o administrador poder clicar sobre ele ou clicar nos botões de edição, exclusão, etc.

    O meu problema agora é que preciso que esse “title” venha de um custom field, pois na aplicação que estou desenvolvendo não vou usar o title. Vamos à um exemplo:

    – Custom post type de empresas
    – Nas colunas da listagem de empresas, vai aparecer o nome da empresa como title pois cadastrei-o asism.

    – Custom post type de imóveis
    – Nas colunas da listagem de imóveis, não terei o registro de title pois um imóvel não tem um título, tem um tipo (casa, apartamento, etc) selecionado em um combobox. <— Preciso que esse tipo seja visualizado no lugar do “title” das colunas de exibição da área de administração do wordpress.

    Fico no aguardo 🙂

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Bueno, antes de mais nada, WordPress é um software de código aberto e os fórums são mantidos por voluntários… Então você pode ter a sorte, ou não, de que alguém encontre sua questão e a responda… Seu segundo post é inclusive mau para você, já que tira sua pergunta da categoria “Nenhuma resposta” 🙂

    Se entendi bem a pergunta, tem duas opções:
    – Remover a coluna básica e adicionar uma personalizada
    http://wordpress.stackexchange.com/a/19229/12615

    – Aplicar o filtro the_title na área administrativa e filtrar seu CPT
    http://wordpress.stackexchange.com/a/54707/12615

    Adaptação da segunda opção:

    function change_title ( $title ) {
        if ( !is_admin() )
            return $title;
        global $post;
        if ( 'house' == get_post_type( $post ) ) {
            $custom_title = "FAZER_AQUI_A_SUA_MANIPULAÇÃO";
            return $custom_title;
        } else {
            return $title;
        }
    }
    add_filter( 'the_title', 'change_title' );

    Moderador Míriam de Paula

    (@miriamdepaula)

    Boa tarde July.

    O que você precisa seria mais ou menos isso?

    /* custom columns */
    add_filter('manage_edit-imovel_columns', 'imovel_columns');
    function imovel_columns($columns) {
    	unset($columns['date']); // Delete date column
    	unset($columns['title']); // Delete title column
    	$columns['cb'] = '<input type="checkbox" />';
    	$columns['tipo'] = 'Tipo de imóvel';
    	$columns['date'] = 'Publicado em';
    	return $columns;
    }
    
    add_action('manage_imovel_posts_custom_column', 'show_imovel_columns', 10, 2);
    function show_imovel_columns($name) {
    	global $post;
    	switch ($name) {
    		case 'tipo':
    			echo get_post_meta($post->ID, '_imovel_tipo', true); // seu custom field vai aqui. altere o meta_key para o do seu sistema.
    		break;
    
    		case "date":
    			echo get_the_time();
    		break;
    	}
    }

    Este é um código exemplo. Altere-o para o seu uso. Onde está “imovel” troque para o slug do seu Custom Post Type.

    Espero que tenha ajudado.

    Abraços.
    Miriam de Paula

    http://wpmidia.com.br

    Criador do tópico JulyMoreira

    (@julymoreira)

    Pessoal, obrigado pela ajuda!

    O que me resolveu foi utilizar a segunda opção que o @brasofilo sugeriu. Segue abaixo como ficou meu código adaptado:

    function change_title($title){
    	global $post;
    	if('imobiliaria' == get_post_type($post)){
    		$custom = (get_post_custom($post->ID) ? get_post_custom($post->ID) : false);
    		$custom_title = (isset($custom['tipoimovel'][0]) ? $custom['tipoimovel'][0] : '(No Title)');
    		return $custom_title;
    	}else{
    		return $title;
    	}
    }
    add_filter('the_title', 'change_title');

    Legal!
    Na verdade, o código fica mais limpo sem o else:

    function change_title($title){
    	global $post;
    	if('imobiliaria' == get_post_type($post)){
    		$custom = (get_post_custom($post->ID) ? get_post_custom($post->ID) : false);
    		$custom_title = (isset($custom['tipoimovel'][0]) ? $custom['tipoimovel'][0] : '(No Title)');
    		return $custom_title;
    	}
    	return $title;
    }
    add_filter('the_title', 'change_title');

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Mudar conteúdo do title na coluna do Custom Post Type’ está fechado para novas respostas.