Fazer páginas também servem como taxonomias? Ou dar páginas completas para taxonomias?

Eu dirijo um blog de notícias de videogames. Quando minha equipe escreve um artigo de notícias ou uma revisão, eu gostaria que eles pudessem “atribuir” essa postagem a um jogo (se aplicável), então eu poderia ter as informações de chamada de modelo single.php nesse jogo (título, boxart, editor, data de lançamento, etc.) e exiba-o na barra lateral. Eu pensei que isso poderia envolver uma taxonomia personalizada para que ela pudesse ser atribuída a uma postagem exatamente como as tags são.

Mas então eu percebi que eu também queria que esses jogos tivessem páginas cheias de informações. Inicialmente pensei em criar um tipo de postagem personalizado para páginas e usando campos personalizados, eu poderia chamar a arte da checkbox do jogo, mostrar sua data de lançamento, exibir postagens ou comentários sobre esse jogo e exibi-los com breves excertos e usar taxonomias personalizadas para exibir o editor do jogo, desenvolvedor, etc …

E ENTÃO percebi que também queria que esses editores e desenvolvedores também tivessem suas próprias páginas. Descrição, localização, links para artigos que os envolvem, listas de jogos atribuídos a eles … e assim por diante.

Nenhuma destas pode ser páginas secundárias do outro, uma vez que os desenvolvedores nem sempre estão permanentemente vinculados a qualquer editor particular, os jogos às vezes são co-desenvolvidos por várias partes, etc.

Eu estou em um pickle, e não consigo descobrir como reorganizar meu site. Eu realmente quero usar todos os brinquedos novos no WordPress para tornar o site que eu quero, em vez de WP limitando o que posso fazer. Alguma sugestão? Estive fazendo um brainstorming por dias tentando descobrir algo. Qualquer sugestão será apreciada.

Solutions Collecting From Web of "Fazer páginas também servem como taxonomias? Ou dar páginas completas para taxonomias?"

Existem algumas opções para ir com isso. Na verdade, experimentei o mesmo processo que você esteve. Seria fácil se o WordPress lhe permitisse vincular postagens ou tipos de postagem personalizados juntos, mas em vez disso, o hackery dos desenvolvedores do WordPress deve ocorrer!

A solução com a qual fui no plugin em que estou trabalhando é um pouco hackeada, mas funciona para mim. Basicamente no meu plugin, queria ter um tipo de publicação chamado série que contenha informações em uma série de TV específica, um tipo de publicação para episódios e outro tipo de publicação para lançamentos de DVD e Blu-ray. Eu queria tanto o episódio e lançar tipos de publicação para fazer referência ao tipo de série que eles vieram, então, se eu criar uma página de publicação de série única, poderia listar os episódios e lançamentos, bem como as informações da série.

Minha solução envolve um campo personalizado que contém o id do object da série. A primeira maneira de conseguir isso foi criar uma metabox que tivesse uma checkbox de seleção de todas as postagens do tipo série:

public function get_select_array($post_type) { global $wpdb; $query = "SELECT ID, post_title FROM $wpdb->posts WHERE post_type = '$post_type' AND post_status = 'publish' ORDER BY post_title"; $results = $wpdb->get_results($query, OBJECT); $series = array(); foreach ($results as $result) { $series[] = array('name' => $result->post_title, 'value' => $result->ID); } return $series; } 

A function get_select_array () basicamente tem um tipo de postagem personalizado e retorna os títulos de postagem e as ID de todas as que são publicadas em uma matriz. Eu então uso essa matriz para preencher uma checkbox de seleção. No meu plugin, estou usando a class de criação de metabox criada por Rilwis, mas vou postar algum código para você usar (o código é adaptado do código de Rilwis):

 add_meta_box('parent_series', 'Series', 'show_series_metabox', 'episode', 'side', 'high'); //add a side metabox function show_series_metabox() { global $post; echo ''; //nonce $series = get_select_array('series'); //get post titles and ID's of post type 'series $meta = get_post_meta($post->ID, 'parent_series', true); //get the meta value of the custom field echo ''; } add_action('save_post', 'save_series_metabox'); function save_series_metabox() { $real_post_id = isset($_POST['post_ID']) ? $_POST['post_ID'] : NULL ; //get post id $old = get_post_meta($real_post_id, 'parent_series', true); //get old stored meta value $new = $_POST['parent_series']; //new meta value if ($new && $new != $old) { //saving or deleting value update_post_meta($real_post_id, 'parent_series', $new); } elseif ('' == $new && $old) { delete_post_meta($real_post_id, 'parent_series', $old); } } 

Isso irá adicionar uma metabox que tenha um seleto que lista todas as séries disponíveis. Quando a postagem é salva, o id daquela série será salvo em um campo personalizado chamado ‘parent_series’. Uma vez que é feito, você pode chamar esse id e usá-lo para ligar as informações da série através de uma consulta personalizada. Ou é possível fazer o contrário: na página da série, você faz uma consulta para todas as páginas de episódios que têm o mesmo valor em seus campos / metadados personalizados.

E lá você tem isso. Usando este código, você pode vincular posts de um tipo aos de outro, fazendo-os funcionar como pseudo-taxonomias de certa forma. Eu editei o código bastante rápido, então, se você encontrar erros ou erros, avise-me. Se houver melhores maneiras de fazer isso, por favor me avise.