Elaboração de trechos em PHP ou WordPress: técnicas de contagem de palavras, frases e parágrafos
Criando trechos em PHP é uma tarefa comum em gerenciamento de conteúdo e desenvolvimento de sites. Um trecho é uma versão abreviada de um conteúdo mais longo, geralmente usado para fornecer uma prévia ou um resumo. Os desenvolvedores de PHP podem precisar criar trechos com base na contagem de palavras, frases ou parágrafos. Este artigo explora métodos para conseguir isso, juntamente com práticas recomendadas e tratamento de casos em que o número da contagem excede o comprimento do conteúdo.
Trecho por contagem de palavras
Criar um trecho por contagem de palavras envolve truncar o conteúdo após um certo número de palavras.
function excerptByWordCount($content, $wordCount) {
$words = explode(' ', $content);
if (count($words) > $wordCount) {
$words = array_slice($words, 0, $wordCount);
$content = implode(' ', $words);
}
return $content;
}
Uso:
// Excerpt of first 50 words
$wordCountExcerpt = excerptByWordCount($originalContent, 50);
Melhores práticas e tratamento de contagens excessivas:
- Verifique a contagem de palavras: Antes de truncar, verifique se a contagem de palavras do conteúdo original excede o comprimento desejado do trecho. Caso contrário, devolva o conteúdo original.
- Evite quebrar palavras: Certifique-se de que a última palavra do trecho esteja completa para manter a legibilidade.
- Adicione uma elipse: Opcionalmente, adicione reticências (
...
) no final se o conteúdo estiver truncado.
Trecho por contagem de frases
A criação de trechos por contagem de frases envolve manter um certo número de frases do conteúdo.
function excerptBySentenceCount($content, $sentenceCount) {
$sentences = explode('.', $content);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode('. ', $sentences) . '.';
}
return $content;
}
Uso
// Excerpt of first 3 sentences
$sentenceCountExcerpt = excerptBySentenceCount($originalContent, 3);
Para atualizar o excerptBySentenceCount
função para incluir frases com qualquer pontuação no final (não apenas pontos), você pode modificar a função para dividir o conteúdo por uma expressão regular que corresponda a qualquer pontuação típica de final de frase, como ponto final, ponto de exclamação ou ponto de interrogação. Veja como você pode fazer isso em PHP:
function excerptBySentenceCount($content, $sentenceCount) {
// Use a regular expression to split the content by sentence-ending punctuation
$sentences = preg_split('/(?<=[.!?])\s+/', $content, -1, PREG_SPLIT_NO_EMPTY);
if (count($sentences) > $sentenceCount) {
$sentences = array_slice($sentences, 0, $sentenceCount);
$content = implode(' ', $sentences);
// Check the last character to ensure it ends with punctuation
if (!preg_match('/[.!?]$/', $content)) {
$content .= '.';
}
}
return $content;
}
Esta função usa preg_split
com uma expressão regular (regex) /(?<=[.!?])\s+/
que divide o texto em espaços (\s+
) que seguem um ponto final, ponto de exclamação ou ponto de interrogação ([.!?]
). O (?<=...)
é uma afirmação positiva que verifica a presença de pontuação no final da frase sem incluí-la na divisão. O PREG_SPLIT_NO_EMPTY
flag garante que apenas peças não vazias sejam retornadas.
Por fim, a função verifica se o último caractere do conteúdo resultante é uma pontuação de final de frase. Caso contrário, acrescenta um ponto final para manter a pontuação adequada no final do trecho.
Melhores práticas e tratamento de contagens excessivas:
- Detecção de frase adequada: Use um ponto final seguido de um espaço para dividir as frases. Isso evita a divisão em períodos usados em abreviações.
- Verifique a contagem de frases: Semelhante à contagem de palavras, verifique se a contagem de frases do conteúdo original é suficiente.
- Manter pontuação: Certifique-se de que o trecho termine com pontuação adequada, normalmente um ponto final.
Trecho por contagem de parágrafo
A criação de trechos por contagem de parágrafos envolve truncar o conteúdo após um determinado número de parágrafos.
function excerptByParagraphCount($content, $paragraphCount) {
$paragraphs = explode("\n", $content);
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode("\n", $paragraphs);
}
return $content;
}
Uso:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByParagraphCount($originalContent, 2);
Melhores práticas e tratamento de contagens excessivas:
- Use novas linhas para parágrafos: Os parágrafos são normalmente separados por novas linhas (
\n
). Certifique-se de que seu conteúdo siga este formato. - Verifique a contagem de parágrafos: Valide se a contagem de parágrafos do conteúdo é adequada ao trecho.
- Respeite a estrutura do conteúdo: Mantenha a estrutura dos parágrafos do trecho para preservar a integridade do conteúdo.
Trecho por contagem de parágrafos HTML
Ao lidar com conteúdo HTML, você desejará extrair trechos com base no <p>
tags para manter a estrutura e formatação do conteúdo original.
function excerptByHtmlParagraphCount($content, $paragraphCount) {
preg_match_all('/<p[^>]*>.*?<\/p>/', $content, $paragraphs);
$paragraphs = $paragraphs[0];
if (count($paragraphs) > $paragraphCount) {
$paragraphs = array_slice($paragraphs, 0, $paragraphCount);
$content = implode(' ', $paragraphs);
}
return $content;
}
Uso:
// Excerpt of first 2 paragraphs
$paragraphCountExcerpt = excerptByHtmlParagraphCount($htmlContent, 2);
Melhores práticas e tratamento de contagens excessivas:
- Expressões regulares para correspondência de tags: Use
preg_match_all
com uma expressão regular para corresponder<p>
Tag. Essa abordagem garante que a estrutura e os atributos das tags de parágrafo sejam preservados. - Respeite a estrutura HTML: Certifique-se de que o trecho mantenha a estrutura HTML. Evite quebrar tags, o que pode levar a problemas de renderização.
- Verifique a contagem de parágrafos: Assim como no texto simples, verifique se a contagem de parágrafos do conteúdo original é suficiente para o trecho.
- Lidar com tags aninhadas: Lembre-se de que os parágrafos podem conter outros elementos HTML, como links ou spans. Garanta suas contas regex para tags aninhadas dentro de parágrafos.
Criar trechos baseados na contagem de parágrafos HTML em PHP é uma tarefa mais avançada em comparação com o tratamento de texto simples. É essencial usar expressões regulares com cuidado para manter a integridade da estrutura HTML. Este método é especialmente relevante para aplicações web onde o conteúdo precisa ser exibido com sua formatação original. Como sempre, valide a extensão do conteúdo original e considere a experiência do usuário ao apresentar trechos.
Sim, o WordPress possui seu próprio conjunto de funções e recursos que facilitam a criação de trechos, o que pode simplificar bastante o processo em comparação ao tratamento manual de trechos em PHP. Aqui está uma visão geral das principais funções do WordPress relacionadas a trechos:
A função de trecho no WordPress
O WordPress API oferece um sistema robusto para lidar com trechos, tornando desnecessária a implementação manual de funções PHP para a maioria dos casos de uso típicos. O WordPress oferece uma maneira fácil de gerenciar resumos de postagens, seja personalizando o comprimento, alterando o leia mais texto ou usando tags de modelo para exibir trechos.
the_excerpt()
Esta tag de modelo do WordPress imprime automaticamente um trecho de uma postagem. É comumente usado em temas para exibir um resumo da postagem nas páginas de arquivo.
- Uso: Lugar
the_excerpt()
dentro do The Loop nos arquivos do tema onde você deseja que o trecho apareça. - comportamento: Por padrão, mostra as primeiras 55 palavras da postagem. Se houver um trecho definido manualmente no editor de postagem, ele será exibido.
get_the_excerpt()
Esta função recupera o trecho sem exibi-lo, dando a você mais controle sobre como e onde usá-lo.
- Uso:
get_the_excerpt($post)
pode ser usado para buscar o trecho de uma postagem específica. - Personalização: Você pode manipular a string retornada conforme necessário antes de exibi-la.
Personalizando o comprimento do trecho
WordPress permite que você altere o comprimento padrão do trecho por meio do excerpt_length
filtro.
function custom_excerpt_length($length) {
return 20; // Return 20 words as the new excerpt length
}
add_filter('excerpt_length', 'custom_excerpt_length');
Gerenciando mais tags e extraindo mais texto
the_content('Read more')
Esta função exibe o conteúdo até encontrar uma tag “mais”. É útil para mostrar um trecho de tamanho personalizado diretamente no editor de conteúdo.
Personalizando trecho mais texto
Você pode personalizar o texto que aparece no final de um trecho (como […]
) usando o excerpt_more
filtro.
function custom_excerpt_more($more) {
return '...'; // Replace the default [...] with ...
}
add_filter('excerpt_more', 'custom_excerpt_more');
Manipulação de HTML em trechos
Os trechos do WordPress são texto simples por padrão. Se precisar preservar tags HTML em trechos, você deve criar uma função customizada ou usar um plugin desenvolvido para essa finalidade.
No entanto, codificação personalizada ou plug-ins podem ser necessários para requisitos avançados, como preservar tags HTML em trechos ou criar trechos com base em elementos específicos, como frases ou parágrafos.