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.Sloppy
maneira de lidar com isso. Mas, infelizmente, não há uma maneira limpa de fazer isso. Wordpress precisa fornecer uma maneira limpa aqui, IMO!Você pode criar páginas normais e aplicar modelos personalizados que contêm o loop personalizado apropriado para gerar o CPT. Ou você pode criar uma página de opções (ou adicionar uma opção ao Theme Customizer), onde o cliente pode adicionar conteúdo via WYSIWYG e, em seguida, gerar esse conteúdo no modelo de arquivo apropriado.
fonte