Só te posso responder subjectivamente, ou seja se fosse eu a fazer.
As tarefas (em abstracto seriam);
- Implementar três Custom Post Types: Eventos, Patrocinadores e Oradores
- Criar os campos personalizados para cada um (normalmente uso isto)
- Implementar uma relação entre CPTs com o plugin Posts2Posts
Assim por alto.
Outra solução, com menos código, é usar um plugin que faz issso tudo (mas sobre o qual tens menos controlo), do tipo Types. Reconheço que funciona muito bem, mas não sou fã de não ser o meu código quando é preciso corrigir erros.
A minha abordagem À situação dependia das necessidades, no caso de abordares os sponsors e speaker como outro CTP tens a vantagem de poder reutilizar esses dados, ligando os mesmos a outro evento posterior por exemplo.
Neste caso, também colocaria o local como outro CPT.
Quanto às ligações entre eles, utilizaria um Custom Field, que recebia o Id dos Speakers, do local e dos sponsors de forma a interligar a informação.
No caso do pretendido ser algo mais simples, optaria por colocar a informação dos speakers e sponsors como um custom field em modo “repeater” por exemplo, tornando mais simples a implementação.
Tudo isso é suportado nativamente pelas bibliotecas/plugins que mencionei, particularmente o Posts2Posts que é simplesmente espectacular.
Thread Starter
Anonymous User
(@anonymized-468039)
OK! Estamos no mesmo comprimento de onda. Esta era, de forma ainda que abstracta, mais ou menos a forma em como pensei fazer a coisa, mas dado que é um projecto tão complexo, achei por bem pedir por aqui ajuda a quem já anda nisto desde o tempo dos ecrãs a fósforo para ver se estava no bom caminho.
Vai ser um projecto interessante 🙂
Já agora, para dividir cada evento em várias “páginas” estou a pensar usar esta abordagem: ahabman.com/blog/2013/02/wordpress-custom-post-type-dynamic-sub-pages/ O que acham?
O local vou implementar simplesmente com custom posts.
O Posts2Posts não conhecia, mas parece que vai para a minha “mala” de plugins essenciais 🙂
@wonderm00n: interessante a abordagem, costumo utilizar jQuery para esse fim, parece-me mais simples, mas com essa abordagem ganhas permalinks para a informação o que me parece bem.
Thread Starter
Anonymous User
(@anonymized-468039)
O local vou implementar simplesmente com custom posts -> era fields.
Também pensei no jQuery, mas para efeitos de SEO é completamente diferente 😉
jQuery é mais boneco e a questão do SEO anda empolada, mas pronto, é só uma opinião muito subjectiva.
Quanto a páginas e subpáginas que, se bem percebi, são na realidade CPTs e páginas dos CPT’s associados, o Posts2Posts tem funções para isso tudo, tipo estas:
<?php
// Find connected pages
$connected = new WP_Query( array(
'connected_type' => 'posts_to_pages',
'connected_items' => get_queried_object(),
'nopaging' => true,
) );
// Display connected pages
if ( $connected->have_posts() ) :
?>
<h3>Related pages:</h3>
<ul>
<?php while ( $connected->have_posts() ) : $connected->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php
// Prevent weirdness
wp_reset_postdata();
endif;
?>
Até dá para relacionar CPTs (e até posts e páginas normais) com utilizadores. Devias ter visto a apresentação do scribu no WordCamp Lisboa 2012.
Mais e vasta documentação aqui:
https://github.com/scribu/wp-posts-to-posts/wiki
Thread Starter
Anonymous User
(@anonymized-468039)
“Quanto a páginas e subpáginas que, se bem percebi, são na realidade CPTs e páginas dos CPT’s associados”
Nop. É a variada informação de cada evento (um CPT) separada em várias sub-páginas desse post. Por exemplo, os campos de morada, telefone, gps, etc.. aparecerão numa página própria tipo /nome-do-evento/local/