Adicionando conteúdo às páginas de arquivo e taxonomia nos tipos de postagem personalizados?

8

Eu tenho um tipo de postagem personalizado chamado "Produtos" e uma taxonomia chamada "Uso". Na minha página de destino "Produtos", gostaria de ter um conteúdo personalizado que possa ser editado via WYSIWYG pelo cliente. O mesmo vale para a página de aterrissagem da taxonomia. Meu pensamento era criar Páginas falsas e apenas puxar o conteúdo via ID para os meus modelos archive-products.php e taxonomy-usage.php, mas fiquei curioso para saber se havia uma maneira melhor de lidar com isso.

    
por paper_robots 07.02.2014 / 04:19

2 respostas

13

A primeira solução pode ser usar a API de configurações e criar 2 campos "Descrição dos produtos" e < em> "Descrição do uso" , depois disso mostrando em seu modelo que os campos são fáceis como:

$options = get_option('my_theme_options');
echo $options['prod_description'];
// echo $options['usage_description'];

No entanto, a API de configurações não é a melhor parte do núcleo do WP, e provavelmente criar uma página de configurações apenas para os campos que não valem a pena.

Outra abordagem é a página de uso (com um modelo de página personalizado ) como arquivo.

Crie uma página e chame-a de "Arquivo do produto"

Nele, coloca algo assim:

<?php
/*
Template Name: Products Archive
*/

 get_header();

 if ( have_posts() ) the post();

 the_content(); // this will output the page content     

 $p_query = new WP_Query('post_type=products');
 if ( $p_query->have_posts() ) { while( $p_query->have_posts() ) {
   $p_query->the_post();
   // this will require a 'entry-product.php' where you can put all your product markup
   get_template_part('entry', 'product');
 } }
 wp_reset_postdata();

 get_footer();

Depois disso, em seu back-end, crie uma página e atribua-a ao modelo recém-criado. Escreva o que quiser no conteúdo da página e, quando abrir a página, você verá o conteúdo da página e os produtos.

O mesmo pode ser feito para a página de taxonomia. Basta alterar o modelo de página e a consulta nele.

Se, por algum motivo, você precisar usar archive-products.php como archive do produto, uma alternativa é criar um modelo personalizado, mas usá-lo apenas para recuperar o conteúdo da página.

Crie um arquivo php no seu tema e nomeie-o como 'page-prod-description.php' . Neste arquivo colocado apenas:

<?php
/*
Template Name: Products Description
*/
wp_safe_redirect( home_url() );
exit();

O que esse arquivo faz é criar um modelo de página personalizado. Esse modelo pode ser anexado a páginas, mas essas páginas não podem ser chamadas diretamente , porque se você tentar você será redirecionado para a página inicial.

Agora faça login no seu back-end e crie uma página, intitule-a como "Descrição dos produtos" e atribua o modelo de página que acabou de criar. Se você tentar acessar a página http://example.com/product-description , será redirecionado para a página inicial.

No seu modelo de arquivo de produto, archive-products.php , você pode usar o conteúdo inserido nessa página assim:

$desc = get_pages('meta_key=_wp_page_template&meta_value=page-prod-description.php');
if ( ! empty($desc) ) {
   $page = array_shift($desc);
   echo apply_filters('the_content', $page->post_content );
}

Agora, seus clientes podem fazer login no back-end e editar a página "Descrição dos produtos" e tudo é escrito na página. O conteúdo será exibido na página do arquivo.

O mesmo, claro, pode ser feito para o arquivo de taxonomia.

    
por gmazzap 07.02.2014 / 11:48
0

Você pode criar páginas normais e, em seguida, aplicar modelos personalizados que contenham o loop personalizado apropriado para gerar o CPT. Ou você pode criar uma página de opções (ou adicionar uma opção ao Customizador de tema), onde o cliente pode adicionar conteúdo via WYSIWYG e, em seguida, exibir esse conteúdo no modelo de arquivo apropriado.

    
por markcbain 07.02.2014 / 07:22