Criação de postagens personalizadas no WordPress (tipos de postagem personalizadas)

Índice
Muitas vezes, como desenvolvedores, precisamos criar conteúdo personalizado ou alguma funcionalidade de forma organizada e registrar nossos próprios valores e campos que o Wordpress não possui por padrão, também é importante que sejam reutilizáveis.
Procuro no diretório de modelo o arquivo functions.php, aqui, por exemplo, dentro do modelo Twenty ten.

Dentro do arquivo, verificamos se a função existe add_theme_support ('post-thumbnails') que é o que permite o uso de imagens em miniatura, se não for, vou adicionar e também vou adicionar uma variável para um tamanho específico.

Neste caso, o modelo já tem suporte para miniaturas, então eu apenas adiciono meu tamanho personalizado.
Isso significa que quando você atribui uma propriedade-thumb a uma imagem, ela será automaticamente dimensionada para 80 pixels de largura por 80 pixels de altura.
Começamos a criar a funcionalidade para isso, é melhor separar o código, poderia colocar no final do arquivo de funções, mas para funcionar de forma mais ordenada vamos colocá-lo em um diretório Componentes (editar)
onde criaremos um arquivo chamado real estate.php, portanto, temos o componente separado.
 _x ('Imóveis', 'nome geral do tipo de postagem'), 'singular_name' => _x ('Imóveis', 'tipo de postagem nome singular'), 'add_new' => _x ('Novo imóvel', 'real estate '),' add_new_item '=> __ ("Nova Propriedade"),' edit_item '=> __ ("Editar Propriedade"),' new_item '=> __ ("Nova Propriedade"),' view_item '=> __ ( "Exibir propriedade"), 'search_items' => __ ("Pesquisar propriedade"), 'not_found' => __ ('Nenhuma propriedade encontrada'), 'not_found_in_trash' => __ ('Nenhuma propriedade'), 'parent_item_colon' = > ''); // Eu crio os argumentos para o banco de dados $ inmobiliaria_args = array ('labels' => $ inmobiliaria_labels, 'public' => true,'ublic_queryable '=> true,' show_ui '=> true,' query_var '=> true, 'reescrever' => verdadeiro, 'hierárquico' => falso, 'menu_position' => null, 'capacity_type' => 'post', 'suporta' => array ('título', 'excerto', 'editor', ' miniatura '),' menu_icon '=> get_bloginfo (' template_directory ').' /images/photo-album.png.webp '// 16x16 png se você quiser um ícone); // Registrar a postagem register_post_type ('inmobiliaria', $ inmobiliaria_args); ?> var13 -> 

Em seguida, incluímos no arquivo functions.php no final ou em uma seção para os componentes, neste caso o colocamos junto com as outras configurações.

Vamos entrar com nosso administrador wordpress, caso esteja ativo devemos atualizar ou fechar a sessão e entrar novamente para atualizar as alterações feitas no arquivo functions.php, que é aquele que invoca o componente.
Como podemos ver, um novo real estate me foi adicionado, para ser capaz de gerenciar nossos próprios dados para este componente de postagem personalizado.

Também criaremos algumas categorias ou taxonomias para que nossa aplicação seja mais completa. Por exemplo, o tipo de imóvel, casa, apartamento, etc. e outro para províncias. Para isso, no arquivo de imóveis abaixo adicionaremos o seguinte código, cada bloco é uma categoria e poderemos criar os que quisermos.
 true, 'label' => 'Tipos de propriedade', 'singular_label' => 'Tipo', 'reescrever' => true)); }?> var13 -> true, 'label' => 'Províncias', 'singular_label' => 'província', 'reescrever' => verdadeiro)); }?> var13 -> 

Então, ao atualizar nosso administrador do wordpress, podemos ver as duas categorias no menu de imóveis.

Listando nossos próprios dados
As entradas e página do wordpress no administrador têm sempre os mesmos dados de título, autor e data, neste caso precisamos listar os dados do componente imobiliário. Para isso vamos personalizar as colunas da lista
 '', 'título' => 'Título', 'foto' => 'Foto', 'tipo' => 'Tipo de propriedade', 'província' => 'Província', 'data' => 'Data',); retornar $ colunas; }?> var13 -> 

Depois de indicar os títulos e tipo de colunas que vão ser apresentadas, passamos a atribuir os dados das consultas que iremos realizar na base de dados e atribuímos os dados a cada coluna, neste caso procuramos as categorias com a função wordpress get_the_term_list ().
 ID, 'tipo', '', ',', ''); quebrar; case 'province': echo get_the_term_list ($ post-> ID, 'province', '', ',', ''); quebrar; }} // adicionar imagens em miniatura à coluna add_filter ('manage_posts_columns', 'showphoto', 5); add_filter ('manage_pages_columns', 'showphoto', 5); add_filter ('manage_custom_post_columns', 'showphoto', 5); // Adiciona a função de coluna showphoto ($ cols) {$ cols ['photo'] = __ ('Thumbnail'); return $ cols; }?> var13 -> 

No caso da imagem, criamos uma função para pesquisar a foto e adicioná-la ao custom_post_columns Se quisermos, também podemos adicioná-lo para ter suporte para posts e páginas, além de nosso componente, caso contrário, removemos essas linhas.
<? // adiciona imagens em miniatura à coluna
add_filter ('manage_posts_columns', 'showphoto', 5);
add_filter ('manage_pages_columns', 'showphoto', 5);
add_filter ('manage_custom_post_columns', 'showphoto', 5);
// Adicione a coluna
function showphoto ($ cols) {
$ cols ['foto'] = __ ('miniatura');
return $ cols;
}
?>
Salvamos o arquivo real estate.php onde fizemos essas alterações e atualizamos a página do administrador do wordpress. Vamos testar a nossa aplicação através do registo de um imóvel, para isso iremos registar previamente as categorias Tipos de imóveis: Casa, Apartamento, Terreno, etc.
Então vamos registrar algumas províncias de Barcelona, ​​Madrid, etc.
Então vamos para o menu Propriedades> Nova propriedade e registramos os dados como uma entrada normal do wordpress, apenas teremos a categoria e uma imagem ou foto para inserir como imagem em destaque.

Lembre-se que as imagens serão dimensionadas em 80 x 80 pixels para a lista de propriedades, nós definimos isso em nosso tamanho personalizado real estate-thumb, então o melhor é que usamos imagens quadradas para que não sejam cortadas, o ideal seria 500x500 pixels.
Depois, ao guardar as alterações podemos ir ver a lista de propriedades e ver as nossas colunas personalizadas, com todas as funcionalidades activadas para pesquisar, filtrar, ordenar alfabeticamente ou ver apenas alguma província, etc.

Isso será muito fácil de administrar e também podemos adicionar mais funcionalidades se precisarmos modificar o tipo de postagem personalizada ou o tipo de postagem personalizada. Quanto à reutilização, o componente é ótimo, pois se quisermos utilizá-lo em outro projeto, basta copiar o tipo de post customizado, incluí-lo em nosso arquivo functions.php e o teremos disponível para uso sem ter que reprogramá-lo.
Depois, com um simples código, podemos mostrar isso na página inicial ou em uma seção do nosso site, pesquisar por província ou por tipo de imóvel.
Também podemos estender o componente adicionando mais funcionalidades ou complementando-o com outros plugins, por exemplo para implementá-lo em várias linguagens com Qtraslator ou adicione várias imagens Várias imagens em destaque para ter mais imagens em destaque e criar uma galeria de fotos para cada propriedade.
A alteração de algumas linhas também poderia ser utilizada para uma agência de veículos onde as categorias fossem marcas e modelos de veículos ou para uma agência de viagens onde teríamos pacotes e destinos, as possibilidades são infinitas, tudo depende das necessidades e da nossa imaginação.
wave wave wave wave wave