# 136: Movendo coisas para um CMS conforme necessário - CSS-Tricks

Anonim

Neste vídeo, falo sobre uma situação particular do “mundo real” que envolvi em como lido com a página Meetups do CodePen.

Nos primeiros dias dos Meetups do CodePen, tínhamos apenas um planejado. Era para ser o primeiro CodePen Meetup em Austin, Texas. Então criei uma página para ele como parte do site principal do CodePen (um projeto Rails) na URL / Meetups /. Lá, eu tive que projetá-lo como quisesse. Eu estava descobrindo que tipo de informação deveria estar naquela página e como apresentá-la. (No vídeo, desenterramos uma cópia do site da época, por meio de páginas em cache (screenshot)).

O tempo passou. Adicionei alguns encontros a ele, e a forma de exibir vários encontros na página tomou forma. Eu descobri quais informações eram comuns entre todos os encontros e como mostrá-las. Ao mesmo tempo, as atualizações estavam ficando tediosas. Adicionar novos é trabalho. É fácil esquecer de remover os antigos. E é meio chato simplesmente deletar HTML assim, sabendo que são informações potencialmente úteis que você está destruindo. Eu estava editando um template HTML aqui.

Chegou o momento em que isso realmente precisava ser sistematizado e movido para um Sistema de Gerenciamento de Conteúdo. Felizmente, o movimento foi bastante fácil, pois eu sabia exatamente o que precisava e sabia que tinha ferramentas para executá-lo. Na verdade, já fizemos esse tipo de coisa várias vezes. Por exemplo, aqui e aqui.

É algo assim:

  1. Crie um novo tipo de postagem personalizada (“Meetups”) com este plugin.
  2. Anexe exatamente os campos personalizados que deseja a esse CPT (data, hora, local, etc).
  3. Publique!

Definimos has_archivecomo truepara nosso CPT, então obtivemos a URL / meetups / de graça, que usa o modelo `archive-meetups.php` automaticamente. Precisávamos fazer um trabalho personalizado sério nesse modelo, pois tínhamos que:

  1. Exiba todas as informações de que precisamos, exatamente como queremos.
  2. Exibe os próximos encontros em ordem de data.
  3. Mova automaticamente encontros antigos para a seção “Encontros anteriores”.

Tudo totalmente factível. Primeiro, vamos consultar os encontros que queremos (após a data de hoje). Fazemos isso executando uma consulta personalizada envolvendo o campo personalizado adequado

 'meetups', 'posts_per_page' => -1, 'meta_key' => 'date', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'meta_query' => array( array( 'key' => 'date', 'compare' => '>=', 'value' => $today )) )); foreach ($myposts as $post) : setup_postdata($post); // The loop! Output stuff! endforeach; wp_reset_postdata(); ?>

A saída de campos personalizados é muito fácil com os Campos personalizados avançados. Ele fornece uma função que você pode usar assim, basta nomear o campo:

Acabamos de colocar esse tipo de saída no HTML existente que já estávamos usando neste novo modelo. Em seguida, executamos outro loop, apenas com comparação de data inversa, para os encontros anteriores.

Nada muito revelador aqui, só fico animado com esse tipo de coisa porque:

  • Parece altamente produtivo, para uma quantidade tão pequena de trabalho (eu fiz isso enquanto estava deitado no sofá uma noite).
  • Posso fazer isso sem precisar incomodar a equipe para desenvolver algo sofisticado, posso usar minhas habilidades de desenvolvedor front-end para fazer isso. (Eu considero mexer com temas WordPress e funcionalidades básicas uma habilidade de front-end).

E, claro, o WordPress não é necessário para isso. Tenho certeza de que é possível em qualquer CMS. Isso é o que são os CMS. Eu simplesmente gosto e conheço melhor o WordPress.