A primeira solução pode ser usar a API de configurações e criar 2 campos "Descrição dos produtos" e "Descrição do uso" , depois mostrar no 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 cria uma página de configurações apenas para os campos que não valem a pena.
Outra abordagem é usar a página (com um modelo de página personalizado ) como arquivo morto.
Crie uma página e chame-a de "Arquivo do produto"
Nele coloque 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, no 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, 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 da página e a consulta.
Se, por qualquer motivo, você precisar usar archive-products.php
como arquivo do produto, uma alternativa é criar um modelo personalizado, mas use-o apenas para recuperar o conteúdo da página.
Crie um arquivo php no seu tema e denomine 'page-prod-description.php' . Neste arquivo, coloque 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 às páginas, mas essas páginas não podem ser chamadas diretamente , porque, se você tentar, será redirecionado para a página inicial.
Agora, faça login no seu back-end e crie uma página, intitule-a "Descrição dos produtos" e atribua o modelo de página recém-criado. Se você tentar acessar a página, http://example.com/product-description
será redirecionado para a página inicial.
No modelo de arquivo do produto archive-products.php
, você pode usar o conteúdo inserido nessa página da seguinte maneira:
$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 o que estiver escrito no conteúdo da página será mostrado na página do arquivo.
O mesmo, é claro, pode ser feito para o arquivo de taxonomia.
main_query
objeto$wp_query
e fará com que ele não produza o direitopost_type
para a consulta que ocorre nas páginas de arquivamento. O que tornará suas chamadas para filtros semelhantespre_get_posts
a uma página de arquivo inútil. Esse é o principal problema. O Wordpress também precisa fornecer um meio para GERENCIAR Arquivos de Tipo de Post e Conteúdo de Arquivos de Taxonomia.