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.

ferramentas de desenvolvimento do jetengine quebram a listagem por meses, adicionam no downloadEm 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.

instalação e ativação de complementos

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.

adicionando metacampo

Definindo o metacampo no arquivo do tema ativo

Navegue até a guia Aparência > Editor de arquivo de tema .

guia do editor de arquivo de temaEscolha 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[ $index1 ];
$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.

arquivo functionsphp de edição de tema ativoSalve 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.

guia do construtor de consultasEspecifique 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).

configurações gerais da guia de edição de consultaPressione “ 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 ).

configurações de consulta personalizadas para listagem de cpt no elementor

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 ).

configurações de consulta personalizadas para listagem de cpt em gutenberg

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 ).

configurações de consulta personalizadas para listagem de cpt no elementorAbra 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 ).

configurações de consulta personalizada para pós-listagem no elemento

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 ).

configurações de consulta personalizadas para listagem de postagens em gutenberg

Aplicando Filtros

Configurações de pesquisa

Crie um filtro de pesquisa usando o plugin JetSmartFilters (aqui, date1 ).

criação de filtro inteligente a jatoLeia 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).

configurações de consulta personalizada do bloco de grade de listagemAdicione 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.

listando resultados de filtragem de grade 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 ).

configurações de consulta personalizadas do widget de grade de listagemAdicione 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 .

configurações gerais do widget searchfilter no elementorOs resultados da pesquisa serão divididos de acordo com os meses.

listando resultados de filtragem de grade em elementor

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.

Índice