Suporte » Plugins » Como modificar o titulo e o slug na save_post

  • Resolvido Zappe

    (@zappe)


    Preciso modificar o titulo e o slug no save_post, fiz uma custom type, mas quero que automaticamente o nome e o slug seja o ID.

    Grato desde já.

    Vilson.

Visualizando 15 respostas - 1 até 15 (de um total de 32)
  • Poderia explicar melhor como vc deseja usar isso, porque não captei a idéia e talvez tenha uma solução mais simples.

    Assim, montei um sistema de reservas com Custom Post Type, e para identificar estou usando o ID do post. Só que quando aparece o title e o post name aparece rascunho automático r não o id.

    Neste Custom post não usei editor somente custom meta boxes como campos da reserva, assim não aparece o campo para digitar o titulo e formar o slug post_name.

    Abraço.

    Entendi, mas vc está equivocado com uma coisa.

    Nos posts personalizados vc pode sim não usar o editor, mais mesmo assim vc pode usar o campo de nome para o post.

    'supports' => array( 'title' , 'editor' , 'sticky' , 'excerpt' , 'comments' ),

    Como vc pode ver pelo código acima “title” e “editor” são coisas distintas.

    Então se eu entendi direito basta vc dar suporte a title em seu custom post e começar a dar o nome que quiser a eles.

    Sim, o problema é que o nome tem que ser o código, por isso não usei support a title.
    Pois o cliente vai identificar a reserva pelo codigo.

    Como vai ser feito de 3 jeitos acho que pode ficar melhor assim, mas veja:

    Um cliente acessa a reserva externa e faz um pedido, esse pedido aparece no admin como reserva (iD, reserva, nome, email, data_pedido), ou o admin mesmo faz o pedido.

    Mas o problema que tive foi, quando listava a relação de reservas não aparecia o (editar, excluir) aqueles links qe aparecem quando você passa o mouse por cima, só aparecem em cima do title.

    Abraço.

    Bom, aqui tem uma função que atribui um título caso o post não tenha nenhum título definido, modifiquei para que seja mostrado o id do post.

    Esta função só faz um título aparecer no site caso o post não tenha título, ela não defini permanentemente um título para estes posts.

    Talvez vc encontre alguma utilidade para esta função, mas a idéia que tive de postar ela é para vc usar a idéia para salvar seus posts com o ID como vc queria.

    Neste caso vc precisa modificar a função de salvamento do seu meta-box para fazer este salvamento com algo semelhante a esta função.

    O add_filter não terá utilidade nenhuma dentro do meta-box, então não se prenda a ele.

    add_filter('the_title', 'wp_title_num');
    function wp_title_num($title) {
        if ($title == '') {
            return the_ID();
        } else {
            return $title;
        }
    }

    Mas ai ele pega o valor automaticamente? o the_ID() eo $title são globais não precisaria declarar a global $post?

    Nesta função não há necessidade do global porque ela está sendo usada pelo filtro the_title, se não fosse isso e dependendo de onde ela seria usada teria sim que usar o global.

    Lembre-se que essa não é uma função para vc copiar e colar no seu meta-box.

    Tente usar get_the_title() dentro da sua função de salvamento.

    dai não preciso usar o save_post? isso? modifica automatica se precisar da action?

    não, não tem nada haver, acho que é melhor vc esquecer essa função.

    Posta aqui o código que está salvando o post do seu meta-box para eu tentar ver se descubro como fazer o que vc quer, se tiver alguma similaridade com o que uso pode ser que eu descubra como fazer.

    fiz dessa maneira, deu certo, mas queria um jeito mais certo, e acho que o seu é bem melhor, por que pelo que eu entendi modifica na hora, e não depois de salvo.
    meu code:

    function update_post_tn() {
    
    	global $post, $wpdb;
    
    	if ( $post->post_type == 'reserva' ) {
    
    	$wpdb->update( 'wp_posts', array( 'post_title' => $post->ID, 'post_name' => $post->ID ), array( 'ID' => $post->ID ), array( '%s', '%d' ), array( '%d' ) );
    
    	}
    }
    
    add_action('save_post', 'update_post_tn');

    como funciona um filtro? ele modifica a saida normal?

    Não sei muito bem sobre isso, vc pode obter algumas respostas aqui

    http://wordpress.org/search/filter?documentation=1

    ou

    http://codex.wordpress.org/Function_Reference/add_filter

    Valew cara, muito obrigado pela ajuda, foi de grande valia mesmo.

    Só mais uma dúvida, se você puder me responder é claro, não abusando.

    Quanto a jQuery e javascript, o que pode estar atrapalhando para eles não funcionarem?

    Abraço.

    Zappe seja mais específico, por favor, não deu muito pra entender a pergunta.

    Se quiser e acho que é o recomendado abre outro tópico com a questão.

    Muito obrigado cara, de verdade.

    Veja o site http://www.moinhocastrolanda.com.br/reservas-salao/.

    Aí esta o resultado de tanto brain storm, hehe.

    Abraço.

Visualizando 15 respostas - 1 até 15 (de um total de 32)
  • O tópico ‘Como modificar o titulo e o slug na save_post’ está fechado para novas respostas.