Suporte » Temas » Tema filho de Storefront / Woocommerce

  • Bom dia!

    A página “blog” está trazendo os posts inteiros. Eu gostaria que troxesse apenas o título e um pedaço pequeno do texto.

    Quando crio um tema para WP, altero o loop. Em vez de usar:
    <?php the_content(); ?>

    Uso:
    <?php the_excerpt(); ?>
    Assim consigo o resultado que desejo.

    Mas esse é um Child. Preciso saber como fazer isso em um tema filho do no tema Storefront.

    Estou usando uma página estática como página inicial. E a página blog terá vários artigos. Apesar de ser woocommerce, o site terá pouqíssimos produtos. O foco é o blog.

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Moderador Ralden Souza

    (@ralden)

    Um apaixonado por WordPress

    olá @dea7,

    conforme documentação sobre temas-filho no Codex do WordPress,

    https://codex.wordpress.org/pt-br:Temas_Filhos

    o local ideal para códigos personalizados é no arquivo “functions.php”. mas caso você precise fazer essa personalização em um arquivo específico, como, por exemplo, “post.php”, você deve copiar o arquivo original para a pasta do tema-filho e etão editá-lo conforme suas necessidades.

    pois o arquivo que vale é o que está na pasta do tema-filho. quando não existe o arquivo na pasta do tema-filho, ai sim o WordPress lê o arquivo na pasta do tema original.

    mas o ideal é que todo código personalizado possa ser usado dentro do “functions.php”. o que preserva suas personalizações quando o tema original é atualizado. e evita você ter que, no caso de usar um arquivo do tema original dentro do tema-filho, ter que ficar atenta para atualizar esse arquivo com o arquivo atualizado do tema original, adicionando a personalização.

    saudações e boa sorte,

    Boa tarde Ralden Souza!

    Antes de mais nada, muito obrigada por sua resposta e atenção!

    Sim. Já editei no arquivo “functions.php” a parte de créditos. Não retirei os créditos do Storefront, só acrescentei o meu, já que estou a fazendo o tema filho. Para isso só mexi na função.

    Copiei um arquivo loop.php para a pasta do tema filho.
    O problema é mexer no loop.php…
    Esse é o loop.php:

    <?php
    /**
     * The loop template file.
     *
     * Included on pages like index.php, archive.php and search.php to display a loop of posts
     * Learn more: https://codex.wordpress.org/The_Loop
     *
     * @package storefront
     */
    
    do_action( 'storefront_loop_before' );
    
    while ( have_posts() ) :
    	the_post();
    
    	/**
    	 * Include the Post-Format-specific template for the content.
    	 * If you want to override this in a child theme, then include a file
    	 * called content-___.php (where ___ is the Post Format name) and that will be used instead.
    	 */
    	get_template_part( 'content', get_post_format() );
    
    endwhile;
    
    /**
     * Functions hooked in to storefront_paging_nav action
     *
     * @hooked storefront_paging_nav - 10
     */
    do_action( 'storefront_loop_after' );

    Perceba que ele até dá a dica de como fazer…
    criei um content-___.php
    Mas confesso que não sou boa em PHP. Eu me perco.

    Vi na pasta inc, no storefront-template-functions.php a function storefront_page_content() e a storefront_post_content()
    Copiei tudo para o tema filho e tentei editar a storefront_post_content que é assim:

    if ( ! function_exists( 'storefront_post_content' ) ) {
    	/**
    	 * Display the post content with a link to the single post
    	 *
    	 * @since 1.0.0
    	 */
    	function storefront_post_content() {
    		?>
    		<div class="entry-content">
          <p style="clear:both; background:red; padding:20px">Estou aqui 1</p>
    		<?php
    
    		/**
    		 * Functions hooked in to storefront_post_content_before action.
    		 *
    		 * @hooked storefront_post_thumbnail - 10
    		 */
    		do_action( 'storefront_post_content_before' );
    
    		the_content(
    			sprintf(
    				/* translators: %s: post title */
    				__( 'Continue reading %s', 'storefront' ),
    				'<span class="screen-reader-text">' . get_the_title() . '</span>'
    			)
    		);
    
    		do_action( 'storefront_post_content_after' );
    
    		wp_link_pages(
    			array(
    				'before' => '<div class="page-links">' . __( 'Pages:', 'storefront' ),
    				'after'  => '</div>',
    			)
    		);
    		?>
    		</div><!-- .entry-content -->
    		<?php
    	}
    }

    Mas eu fiz algo errado.
    Isso edita a página do post, para leitura do post. Não a página do blog, o loop.

    Enfim…
    Sei que consigo inserindo o “Leia mais” em cada post. Isso é uma possibilidade muito antiga do WP. Mas eu gostaria que fosse automático.

    • Esta resposta foi modificada 5 meses, 1 semana atrás por  dea7.
    Moderador Ralden Souza

    (@ralden)

    Um apaixonado por WordPress

    olá @dea7,

    bem, eu não sou programador, sou designer. apesar que como faz mais de 10 anos que mexo com WordPress, não tem como não ser um pouco programador para poder fazer um design bom…

    olha, eu indicaria ver a documentação do tema,

    https://docs.woocommerce.com/documentation/themes/storefront/

    inclusive há um artigo chamado “Storefront Customizer”, que mostra como é a personalização em WordPress > Aparência > Personalizar. nessa área de personalização, eu indicaria abrir a seção “Layout”, que normalmente possui uma sub-seção “Blog”. alguns temas permitem customizar opções do blog, como mostrar no front-end apenas resumo (“excerpt”) e definir o número de caracteres do resumo.

    por ser designer e usuário do Elementor PRO, eu sempre busco alternativas no próprio antes antes de partir para código, pois como não é minha praia, se der erro eu não vou saber pra onde ir.

    caso não haja realmente nenhum opção que permita essa configuração e tenha mesmo que fazer isso via código, sugiro dois caminhos. o primeiro é abrir um tópico no suporte oficial do tema,

    https://wordpress.org/support/theme/storefront/

    precisará ser em inglês, mas caso não consiga escrever nesse idioma, indico o Google Translator. pois como é o fórum oficial do tema, você provavelmente contará com desenvolvedores do próprio tema tentando te ajudar e isso é tudo de bom.

    caso consiga se expressar em inglês, outra indicação que dou é

    https://wordpress.stackexchange.com

    aqui é um fórum de programadores com foco em WordPress, muito bom e avançado. se expuser o passo-a-passo e o código do que está fazendo, com certeza eles ajudarão, pois ganham pontos por respostas que ganhem “likes”.

    saudações e boa sorte,

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Você deve estar conectado para responder a este tópico.