Exibir texto editável acima das listagens de arquivos CPT

4

Eu tenho dois tipos de postagens personalizadas (autores e parceiros). Eu exibo suas páginas de arquivo na navegação principal e uso archive-authors.php e archive-partners.php para fazer alguns pequenos ajustes na exibição de posts em cada.

Agora, meu cliente gostaria de exibir um texto antes da listagem de postagens do arquivo. Até agora posso pensar nas seguintes maneiras de fazer isso:

  1. Salve o texto como a descrição do tipo de postagem e exiba isso.
  2. Crie uma página separada e codifique um loop WP_Query() personalizado para apenas essa página (por ID) acima do arquivo.
  3. Escreva um loop personalizado com WP_Query() para produzir o arquivo CPT para cada CPT e configure os modelos "Arquivo do autor" e "Arquivo do parceiro" que podem ser usados em páginas estáticas e editáveis.

No entanto, todas essas soluções parecem abaixo do ideal por um ou mais dos seguintes motivos:

  • Eles exigem conhecimento técnico para atualizar (# 1, # 2)
  • Não é abstraído (por exemplo, a solução precisa ser personalizada para cada arquivo) (# 2, # 3)
  • A atualização do texto exige conhecimento técnico (nº 1)
  • A solução basicamente duplica a hierarquia de modelos (# 3).

Estou procurando uma solução que seja amigável ao WordPress, abstraída e fácil de atualizar para o cliente.

    
por mrwweb 24.04.2012 / 00:26

2 respostas

2

Uma das maneiras mais fáceis (embora não as únicas) de conseguir isso é criar um painel de opções personalizadas no painel do WP que permitirá que seu cliente crie e atualize informações que podem ser usadas em seus arquivos de modelo sem conhecimento técnico sendo necessário.

Você pode colar o seguinte diretamente no arquivo functions.php ou salvá-lo em um arquivo, ou seja, config-menu.php (dentro do diretório do seu tema) e incluí-lo no arquivo functions.php - a opção é seu no entanto, o código é;

// create config menu in dashboard
add_action('admin_menu', 'config_menu');

function config_menu() {

    //create a menu in the dashboard
    add_menu_page('Website Custom Settings',
                  'Configure Site', 
                  'administrator',
                  __FILE__,
                  'custom_settings_page',
                  ''.get_bloginfo('template_directory').'/images/your_icon.png', 4);

}

//register settings
add_action( 'admin_init', 'register_settings' );

function register_settings() {

    register_setting(   'my-settings-group', 'partners');
    register_setting(   'my-settings-group', 'authors');
}

function my_settings_page() {
?>

<div class="wrap">

    <form method="post" action="options.php">

    <?php settings_fields('my-settings-group'); ?>

    Enter your Partner description here <br/>
    <textarea  name="partners"><?php echo get_option('partners');?></textarea>

    <br />

    Enter your Author description here <br/>
    <textarea  name="authors"><?php echo get_option('authors');?></textarea>
    <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />

    </form>

</div>

<?php } ?>

Em seguida, nos seus arquivos de modelo de arquivo para cada tipo de postagem, você pode fazer o seguinte:

<?php echo wpautop(get_option('partners');?>

and

<?php echo wpautop(get_option('authorss');?>

Isso chamará os respectivos valores (texto digitado) nos campos textarea que você criou na área do painel para o cliente.

NOTA: O código de exemplo acima é muito rudimentar e é desmontado para fornecer um exemplo básico. Nenhum estilo CSS fornecido que eu deixarei com você. Mas isso vai fazer o trabalho.

    
por userabuser 24.04.2012 / 03:18
1

Existe agora um plugin Descrições CPT que faz isso.

A partir da v0.1, o plug-in é bastante problemático (os editores não podem salvar as descrições), mas a maioria das coisas é resolvida no Versão do repositório GitHub do plugin e você pode encontrar algumas outras mudanças / melhorias entre os um fork existente e solicitações de pull. Espero que eles sejam integrados à versão repo do WordPress do plugin, mas por enquanto eles estão prontos e testados no GitHub.

Para usar o plug-in, basta instalá-lo, preencher os campos "Descrição" para cada tipo de postagem desejado e, em seguida, exibir a descrição em uma página de arquivamento com:

the_post_type_description();

ou obtenha uma descrição específica do tipo de postagem com:

the_post_type_description('my_post_type');

ou salve-o em uma variável com:

$description = get_post_type_description();
    
por mrwweb 01.08.2013 / 02:17