Como dividir a listagem por meses
Baixando e instalando o complemento
Baixando o complemento
Baixe este complemento gratuitamente pelo link jet-engine-break-listing-by-months .
Pressione o botão “ Código ” para abrir o menu suspenso. Pressione a guia Download Zip e baixe o complemento.
Em seguida, renomeie o complemento de jet-engine-break-listing-by-month-master para jet-engine-break-listing-by-month .
Instalando o complemento
Vá para o Painel do WordPress , navegue até a guia Plugins e pressione o botão “ Adicionar Novo ” para adicionar o complemento.
Este tutorial detalha como instalar plug-ins Jet por meio do painel do WordPress .
Ative o complemento.
Quebrando listagens com base na data do metacampo
Construindo uma consulta personalizada
Adicionando um metacampo
Use o CPT criado com as postagens que deseja listar. Aqui, o CPT datas_department possui o metacampo de data a ser utilizado para quebrar a listagem, nomeadamente para uma consulta personalizada e alteração do arquivo do tema ativo.
Definindo o metacampo no arquivo do tema ativo
Navegue até a guia Aparência > Editor de arquivo de tema .
Escolha o arquivo functions.php do seu tema ativo.
Adicione uma linha com o seguinte código no final deste arquivo:
define('JET_ENGINE_BREAK_BY_FIELD', 'date' );
<?php | |
/** | |
* Plugin Name: JetEngine – break listing by months | |
* Plugin URI: | |
* Description: Separate JetEngine listing by months | |
* Version: 1.0.0 | |
* Author: Crocoblock | |
* Author URI: https://crocoblock.com/ | |
* License: GPL-3.0+ | |
* License URI: http://www.gnu.org/licenses/gpl-3.0.txt | |
* Domain Path: /languages | |
*/ | |
// If this file is called directly, abort. | |
if ( ! defined( ‘WPINC’ ) ) { | |
die(); | |
} | |
class Jet_Engine_Break_Listing_By_Months { | |
public function __construct() { | |
add_action( ‘init’, array( $this, ‘setup’ ) ); | |
add_action( ‘jet-engine/listing/before-grid-item’, array( $this, ‘handle_item’ ), 10, 2 ); | |
} | |
/** | |
* These constants could be defined from functions.php file of your active theme | |
* @return [type] [description] | |
*/ | |
public function setup() { | |
if ( ! defined( ‘JET_ENGINE_BREAK_BY_FIELD’ ) ) { | |
// set meta field to break by, if field is not set will be break by post date | |
define( ‘JET_ENGINE_BREAK_BY_FIELD’, false ); | |
} | |
if ( ! defined( ‘JET_ENGINE_BREAK_BY_QUERY_ID’ ) ) { | |
// set query ID to break by. Same query ID need to be set also for Listing and filter wisgets if you using this in combination with JSF | |
define( ‘JET_ENGINE_BREAK_BY_QUERY_ID’, ‘break_months’ ); | |
} | |
if ( ! defined( ‘JET_ENGINE_BREAK_MONTH_OPEN_HTML’ ) ) { | |
// set opening html tag(s) for month name | |
define( ‘JET_ENGINE_BREAK_MONTH_OPEN_HTML’, ‘<h4 class=”jet-engine-break-listing” style=”width:100%; flex: 0 0 100%;”>’ ); | |
} | |
if ( ! defined( ‘JET_ENGINE_BREAK_MONTH_CLOSE_HTML’ ) ) { | |
// set closing html tag(s) for month name | |
define( ‘JET_ENGINE_BREAK_MONTH_CLOSE_HTML’, ‘</h4>’ ); | |
} | |
if ( ! defined( ‘JET_ENGINE_BREAK_MONTH_FORMAT’ ) ) { | |
// set format of the month to show | |
define( ‘JET_ENGINE_BREAK_MONTH_FORMAT’, ‘F, Y’ ); | |
} | |
} | |
public function handle_item( $post, $listing ) { | |
if ( empty( $listing->query_vars[‘request’][‘query_id’] ) ) { | |
return; | |
} | |
$query = \Jet_Engine\Query_Builder\Manager::instance()->get_query_by_id( $listing->query_vars[‘request’][‘query_id’] ); | |
if ( ! $query ) { | |
return; | |
} | |
if ( ! $query->query_id || JET_ENGINE_BREAK_BY_QUERY_ID !== $query->query_id ) { | |
return; | |
} | |
$index = jet_engine()->listings->data->get_index(); | |
if ( 0 === $index ) { | |
$this->render_month( $post ); | |
} else { | |
$items = $query->get_items(); | |
$prev_post = $items[ $index – 1 ]; | |
$prev_time = $this->get_post_timestamp( $prev_post ); | |
$current_time = $this->get_post_timestamp( $post ); | |
if ( $prev_time && $current_time && date_i18n( ‘F, Y’, $prev_time ) !== date_i18n( ‘F, Y’, $current_time ) ) { | |
$this->render_month( $post ); | |
} | |
} | |
} | |
public function get_post_timestamp( $post ) { | |
if ( JET_ENGINE_BREAK_BY_FIELD ) { | |
$date = get_post_meta( $post->ID, JET_ENGINE_BREAK_BY_FIELD, true ); | |
} else { | |
$date = $post->post_date; | |
} | |
if ( ! $date ) { | |
return; | |
} | |
if ( Jet_Engine_Tools::is_valid_timestamp( $date ) ) { | |
return $date; | |
} else { | |
return strtotime( $date ); | |
} | |
} | |
public function render_month( $post ) { | |
$timestamp = $this->get_post_timestamp( $post ); | |
if ( ! $timestamp ) { | |
return; | |
} | |
echo JET_ENGINE_BREAK_MONTH_OPEN_HTML; | |
echo date_i18n( JET_ENGINE_BREAK_MONTH_FORMAT, $timestamp ); | |
echo JET_ENGINE_BREAK_MONTH_CLOSE_HTML; | |
} | |
} | |
new Jet_Engine_Break_Listing_By_Months(); |
Esta linha (linha 82 na imagem abaixo) define o nome do metacampo (aqui, date ) no arquivo functions.php do tema ativo.
Salve as alterações pressionando o botão “ Atualizar arquivo ”.
Construindo uma consulta personalizada
Navegue até JetEngine> Query Builder e pressione o botão “Adicionar novo ” para criar uma consulta.
Especifique seu Nome (aqui break_month ) e Query ID ; selecione a opção Consulta de postagens no menu suspenso Tipo de consulta .
Navegue até a guia de configuração de Consulta de Postagens e especifique o Tipo de Postagens (os CPTs usados para listagem).
Pressione “ Adicionar Consulta ” para salvá-la.
Aplicando a consulta customizada à listagem de CPTs no Elementor
Abra a página com a grade de listagem que você quebrou. Abra a guia Consulta personalizada e ative o botão Usar consulta personalizada no widget Grade de listagem . Escolha a consulta criada recentemente na lista suspensa (aqui, break_month ).
Aplicando a consulta personalizada à listagem de CPTs em Gutenberg
Adicione o bloco Listing Grid à página, navegue nas configurações de Consulta Personalizada e ative o botão Usar Consulta Personalizada . Selecione a consulta personalizada criada (aqui break_month ).
Dividindo listagens com base nas datas de publicação da postagem
A quebra de listagens construídas nas datas de publicação da postagem (não nos CPTs) não requer adição de dados adicionais aos arquivos do tema ativo. Neste caso, os usuários podem aplicar apenas o complemento e construir a consulta.
Construindo uma consulta personalizada
Navegue até WordPress Dashboard > JetEngine > Query Builder e pressione o botão “Adicionar novo ” para criar uma consulta.
Especifique seu nome (aqui break_month ) e ID de consulta. Abra o menu suspenso Tipo de consulta e selecione a opção Consulta de postagens .
Navegue até a guia de configuração de consulta de postagens e especifique o tipo de postagem (aqui, Postagens ) e o status da postagem (aqui, Publicado ).
Abra a aba “ Paginação ” e digite -1 no campo Postagem por página para mostrar todas as postagens da página.
Pressione o botão “ Adicionar Consulta ”.
Aplicando a consulta personalizada à listagem de postagens no Elementor
Abra a página com o widget Grade de listagem para postagens. Clique na guia Configurações de consulta personalizada e mova o botão Usar consulta personalizada . Escolha a consulta personalizada (aqui break_month ).
Aplicando a consulta personalizada à listagem de postagens em Gutenberg
Crie ou abra a página com o bloco Listing Grid com as postagens. Navegue até a guia Configurações de consulta personalizada e mova o botão Usar consulta personalizada . Selecione a consulta necessária no menu suspenso Consulta personalizada (aqui, break_month ).
Aplicando Filtros
Configurações de pesquisa
Crie um filtro de pesquisa usando o plugin JetSmartFilters (aqui, date1 ).
Leia o tutorial sobre como usar o filtro de pesquisa e aplicar os widgets do JetSmartFilter .
Filtragem dos resultados da pesquisa em Gutenberg
Construa uma página para aplicar o Filtro de Pesquisa e a Listagem com postagens ou CPTs.
Navegue até as configurações da listagem e abra a guia Consulta . Especifique a consulta criada (aqui break_month ) como a consulta personalizada do Query Builder como a origem do item).
Adicione o bloco Filtro de pesquisa e o bloco Botão Aplicar . Use a página de arquivo criada para redirecionar os resultados da pesquisa.
Este tutorial explica como criar um modelo de arquivo para exibir resultados de pesquisa .
Selecione o filtro necessário (aqui, date1 ) no menu suspenso Selecionar filtro . Especifique a opção Grade de listagem no menu suspenso Filtrar para .
A imagem abaixo mostra os resultados da pesquisa para esses CPTs divididos por meses em Gutenberg.
Filtragem de resultados de pesquisa no Elementor
Abra a página com a listagem. Desenrole as configurações de consulta personalizada desta listagem e vá para o botão Usar consulta personalizada .
Selecione a consulta no menu suspenso (aqui, break_month ).
Adicione o widget Filtro de Pesquisa à página. Desenrole as configurações de Conteúdo e escolha o filtro criado (aqui, date1 ) no menu suspenso Selecionar Filtro .
Os resultados da pesquisa serão divididos de acordo com os meses.
Funcionalidade Avançada
Para estender a funcionalidade do plugin para qualquer objeto, reescreva a parte de obtenção de dados de acordo com o seguinte código no link:
lista de intervalos de motores a jato por meses adicionais
- Para a data de criação do CCT você pode obter com $post->cct_created , campo personalizado acessível pelo seu nome – $post->my_field ;
- Para termos e usuários, você precisa usar as funções get_term_meta e get_user_meta .
Trata-se de quebrar um único widget Listing Grid e bloqueá-lo em seções separadas por mês com base na data de pós-publicação ou na data dos metacampos.