Trabalhando com um Tipo personalizado Post ( CPT ) é natural para usar as funções internas do WordPress para visualizar e filtrar as mensagens deste tipo. , risulta comodissimo poter creare loop personali sulle proprie tipologie di post. Se você usar os get_posts() é que ele cria um objeto diretamente WP_Query , é muito confortável para criar loops em seus próprios tipos de mensagens pessoais. WordPress também permite fazer filtros para tassionomie pessoal, na contagem, a ordem, chegando aos metadados. Muito útil, de fato, é o processo que permite que você especifique onde em termos de que tipo de meta-dados e compará-lo com regras. Esta característica é útil não só para a CPT , mas também para correio normal. Muitas vezes, estender a informação de uma mensagem (ou página) com campos pessoais que acabam na mesa de pós meta. Estes valores, para além de ser utilizado durante a exposição, pode ser usado para filtrar e armazenar a mensagem.
Por exemplo, aqui é como extrair uma série de CPT ao qual foi adicionado um encontro pessoal (não a do post) no post meta:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | / * I criar condições onde * / array ( $ Meta_query = gama ( série ( 'my_meta_key' , 'Key' => 'my_meta_key' array ( 'Valor' => gama ( $ Hoje $ MaxDate ) 'numeric' , 'Type' => 'numérico', 'BETWEEN' 'Comparar' => "entre" ) ); / * Temas padrão, consulte WP_Query * / array ( $ Args = gama ( 10 , 'Numberposts' => 10, 'publish' , 'Post_status' => 'publicar', 'my_custom_type' , 'Post_type' => 'my_custom_type' 'my_meta_key' , 'Meta_key' => 'my_meta_key' 'meta_value' , 'Orderby' => 'meta_value' 'ASC' , 'Ordem' => 'ASC', $meta_query 'Meta_query' => $ meta_query ); get_posts ( $args ) ; $ Posts = get_posts ($ args); |
compresa (between) tra $today e $maxDate . No exemplo acima são extraídos tipo 10 mensagens my_custom_type que têm my_meta_key intervalo (entre) entre $today e $maxDate . A data é sempre armazenado como uma string, porque como você sabe nos metadados que você não pode escolher o tipo de dados a serem armazenados, eo tipo string (junto com a serialização) cobri-los todos em prática, a partir dos números inteiros, matrizes, até chegar ao objetos. A data, entrou no formato YYYYMMDD pode ser usado para ambos como um filtro durante a pesquisa, tanto para encomendar o nosso post.
O que o código acima, no entanto, e retornar o valor de my_meta_key . Ele o usa para encontrar os elementos da matriz, mas $posts temos nenhum vestígio. , appesantendo non poco l'intero codice: una select, più n get_post_meta() per ogni post estratto. O que surgem espontaneamente e, em seguida, usar, no caso de outro laço foreach função get_post_meta() , e pesar não apenas o código inteiro: selecionar um plus n get_post_meta() para cada post trecho.
. Felizmente WordPress oferece uma de suas poções mágicas que podem alterar o SQL SELECT que é produzido no interior, quando usamos os get_posts() , o mesmo vale se você criou um objeto WP_Query .
che di solito si preoccupa solo di estrarre le colonne della tabella posts. O filtro posts_fields você pode adicionar colunas a ser extraído durante um normal get_posts() que, geralmente, só se preocupa com a extração colunas dos postos de mesa.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | / * I criar condições onde * / array ( $ Meta_query = gama ( série ( 'my_meta_key' , 'Key' => 'my_meta_key' array ( 'Valor' => gama ( $ Hoje $ MaxDate ) 'numeric' , 'Type' => 'numérico', 'BETWEEN' 'Comparar' => "entre" ) ); / * Temas padrão, consulte WP_Query * / array ( $ Args = gama ( 10 , 'Numberposts' => 10, false , 'Suppress_filters' => false, 'publish' , 'Post_status' => 'publicar', 'my_custom_type' , 'Post_type' => 'my_custom_type' 'my_meta_key' , 'Meta_key' => 'my_meta_key' 'meta_value' , 'Orderby' => 'meta_value' 'ASC' , 'Ordem' => 'ASC', $meta_query 'Meta_query' => $ meta_query ); / * Adicione o filtro para adicionar colunas * / , function ( $fields ) { add_filter ('posts_fields', function ($ fields) { ; global $ wpdb; sprintf ( ', %s.meta_key, %s.meta_value ' , $wpdb -> postmeta , $wpdb -> postmeta ) ; $ Fields =. sprintf ('% s.meta_key, s.meta_value%', $ wpdb -> postmeta, $ wpdb -> postmeta); $fields ) ; return ($ campos); 10 , 1 ) ; }, 10, 1); get_posts ( $args ) ; $ Posts = get_posts ($ args); |
Em $posts teríamos uma matriz de objetos com uma propriedade adicional (ou melhor, dois): Colunas meta_key e meta_value. Assim, podemos visualizar e eventualmente rever mais, os nossos dados.
Eu não poderia usar um SQL select personalizado?
Em teoria sim, mas na prática não vale a pena o esforço. As funções internas do WordPress é verdade que no final só servem para gerar uma instrução SQL, mas eles fazem e permitir um monte 'de pequenas coisas mais.
- Higienizar os parâmetros
- Nós esconder a complexidade do jogo Cadastre
- Eles estão sempre atualizados e não forçam-nos a conhecer mais detalhadamente empurrou todo o sistema de banco de dados WordPress
- Se qualquer outro plugin alterou sua operação através dos filtros, consulte WPML , tudo vai funcionar perfeitamente
Para aqueles que desejam explorar todos os filtros possíveis, veja aqui .










Giustappunto Eu estou trabalhando em um projeto eo cliente me pediu para mostrar todas as novidades (que são CPT) em um calendário ... Perfeito!
Olá meu nome é Louis Usei conteúdo personalizado Type Manager para a construção de uma grande exposição que fiz um tipo personalizado chamado "Expositores", onde eu criei como detalhes Expositor:
Tipo
Categoria
Fique não
Inserção de fotos
etc ...
Eu preciso para exibir corretamente em uma página personalizada todos os expositores exemplo de um certo tipo:
Motores
No. Nome estande Display (com links que levam para o meu cartão que foi criado com o conteúdo personalizado Type Manager)
No. Nome estande Display (com links que levam para o meu cartão que foi criado com o conteúdo personalizado Type Manager)
No. Nome estande Display (com links que levam para o meu cartão que foi criado com o conteúdo personalizado Type Manager)
Flores
No. Nome estande Display (com links que levam para o meu cartão que foi criado com o conteúdo personalizado Type Manager)
No. Nome estande Display (com links que levam para o meu cartão que foi criado com o conteúdo personalizado Type Manager)
No. Nome estande Display (com links que levam para o meu cartão que foi criado com o conteúdo personalizado Type Manager)
etc .....
mais se você pode chreare ao topo da página uma pesquisa de Tipo - Nome - Categoria
como posso definir essas coisas com WP_Query?
AJUDE-ME! Olá Agradeço antecipadamente Luigi