Como definir o título do tipo de postagem personalizada sem suporte

4

Então, eu fiz essa pergunta de forma diferente em outro tópico, mas foi mais uma questão de tipo de aviso, por isso, não deu respostas úteis. Acredito que posso redigir melhor e ajudar alguns de vocês a decifrar o que estou tentando realizar e, possivelmente, ajudar outra pessoa quando colaborarmos com uma solução.

Eu tenho um tipo de postagem personalizado que usa valores muito limitados de Suportes ( descritos aqui ) porque eu só preciso do meta valores de caixa para o meu tipo de postagem personalizado. Não faz sentido para o meu tipo incluir um título e conteúdo. Código abaixo:

register_post_type( 'athlete',
        array(
            'labels' => array(
                'name' => 'Athletes',
                'singular_name' => 'Athlete',
                'add_new' => 'Add New',
                'add_new_item' => 'Add New Athlete',
                'edit' => 'Edit',
                'edit_item' => 'Edit Athlete',
                'new_item' => 'New Athlete',
                'view' => 'View',
                'view_item' => 'View Athlete',
                'search_items' => 'Search Athletes',
                'not_found' => 'No Athletes found',
                'not_found_in_trash' => 'No Athletes found in Trash',
                'parent' => 'Parent Athlete'
            ),

            'public' => true,
            'menu_position' => 15,
            'supports' => array( 'thumbnail' ),
            'taxonomies' => array( '' ),
            'has_archive' => true
        )
    );

Como você pode ver, eu só preciso da opção de suporte a miniaturas porque o resto do meu tipo de post será meta-caixas (não incluídas nesta pergunta). O problema é que, quando eu salvo um atleta, eu tenho dois problemas, eu não sei como exibir meus valores meta-box na lista Athlete (como colunas na grade) e eu não sei como definir o valor do título como Ele sempre define como "Gerado automaticamente", o que não é o preferido. Se o título for um campo pesquisável, prefiro definir o valor como [Nome] + [Sobrenome]. Alguém pode ajudar com esses dois problemas e explicar se vou me deparar com algum problema usando um tipo de postagem personalizada, em vez de usar tabelas de banco de dados personalizadas e uma interface do usuário personalizada para gerenciar meu objeto?

    
por clockwiseq 27.02.2013 / 15:14

1 resposta

3

Eu me interessei nisso também. Para uma meta box, eu recomendo o plugin Meta Box (ao qual eu contribuo regularmente com o código). Um bom tutorial sobre como usá-lo é aqui . Para colunas personalizadas, faça uma pesquisa no WPSE, mas isso deve ajudar você a começar. Salvar o título da postagem envolve usar o filtro save_post . Quando você configura sua meta box, lembre-se do id que você usou para o primeiro e último nomes e substitua então no código abaixo:

add_filter( 'save_post_athlete', 'wpse88655_set_title', 10, 3 );
function wpse88655_set_title ( $post_id, $post, $update ){
    //This temporarily removes filter to prevent infinite loops
    remove_filter( 'save_post_athlete', __FUNCTION__ );

    //get first and last name meta
    $first = get_metadata( 'athelete_first_name', $post_id ); //meta for first name
    $last = get_metadata( 'athelete_last_name', $post_id );   //meta for last name

    $title = $first . ' ' . $last;

    //update title
    wp_update_post( array( 'ID'=>$post_id, 'post_title'=>$title ) );

    //redo filter
    add_filter( 'save_post_athlete', __FUNCTION__, 10, 3 );
}
    
por Manny Fleurmond 27.02.2013 / 18:39