Trabalhando com um tipo de Mensagem Personalizado ( CPT ) é natural de 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. Seja usando as get_posts() é que você criar um objeto diretamente WP_Query , é muito confortável para criar loops em seus tipos de mensagens pessoais. WordPress também permite filtros para tassionomie pessoal, sobre a contagem de ordem, progredindo para metadados. Útil, na verdade, é o processo que permite que você especifique as condições em que esse tipo de meta-dados e compará-lo com regras. Esta característica é útil não só para a CPT , mas também para pós normal. Muitas vezes, estender as informações em um post (ou página) com os campos pessoais que terminam na tabela depois do gol. Estes valores, bem como sendo usado durante a exibição, pode ser usado para filtrar e classificar os nossos mensagens.
Por exemplo, é aqui como para extrair uma série de CPT ao qual foi adicionado uma data pessoal (não a da pós) no posto de 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 | / * Eu criar as condições em que * / array ( $ Meta_query = matriz ( matriz ( 'my_meta_key' , 'Key' => 'my_meta_key', array ( 'Valor' => matriz ( $ Hoje, $ MaxDate ), 'numeric' , 'Tipo' => 'numérico', 'BETWEEN' 'Show' => 'BETWEEN' ) ); / * Os argumentos padrão, ver WP_Query * / array ( $ Args = matriz ( 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 . Nos extratos acima são 10 postos do tipo my_custom_type que têm my_meta_key intervalo (entre) entre $today e $maxDate . A data sempre é armazenada como uma seqüência, como nos metadados como você sabe que não pode escolher o tipo de dados a serem armazenados, ea seqüência (juntamente com a serialização) cobri-los todos em prática, os inteiros, matrizes, até a objetos. A data, inserido no formato YYYYMMDD e pode assim ser usado como um filtro durante uma busca, é para ordenar as nossas mensagens.
O que o código acima, no entanto, e retornar o valor de my_meta_key . Ele a usa para encontrar os elementos na matriz, mas $posts Nós não rastreamos. , appesantendo non poco l'intero codice: una select, più n get_post_meta() per ogni post estratto. O que é que surgem espontaneamente e, em seguida, usar, no caso de outro laço foreach função get_post_meta() , não um pouco de peso para baixo todo o código: select a, n mais get_post_meta() para cada trecho post.
. Felizmente, o WordPress oferece uma de suas poções mágicas para alterar a instrução SQL SELECT que é produzido no interior, quando usamos os get_posts() , a mesma coisa se você criou um objeto WP_Query .
che di solito si preoccupa solo di estrarre le colonne della tabella posts. Através dos filtros posts_fields você pode adicionar colunas a serem extraídos durante um normal get_posts() que normalmente só são envolvidas com a extração das 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 | / * Eu criar as condições em que * / array ( $ Meta_query = matriz ( matriz ( 'my_meta_key' , 'Key' => 'my_meta_key', array ( 'Valor' => matriz ( $ Hoje, $ MaxDate ), 'numeric' , 'Tipo' => 'numérico', 'BETWEEN' 'Show' => 'BETWEEN' ) ); / * Os argumentos padrão, ver WP_Query * / array ( $ Args = matriz ( 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 ($ campos) { ; global $ wpdb; sprintf ( ', %s.meta_key, %s.meta_value ' , $wpdb -> postmeta , $wpdb -> postmeta ) ; $ Campos =. sprintf (',% s.meta_key, s.meta_value%', $ wpdb -> postmeta, $ wpdb -> postmeta); $fields ) ; retorno ($ campos); 10 , 1 ) ; }, 10, 1); get_posts ( $args ) ; $ Posts = get_posts ($ args); |
Em $posts teríamos um array de objetos com propriedades em mais (na verdade dois): o meta_key colunas e meta_value. Assim, podemos ver mais longe e, eventualmente, rever, os nossos dados.
Eu não poderia usar um costume instrução SQL select?
Em teoria sim, mas não na prática, vale a pena. As funções internas do WordPress é verdade que no final estão lá para gerar uma instrução SQL, mas eles fazem e permitem uma grande quantidade "de pequenas coisas mais.
- Higienizar os parâmetros
- Nós esconder a complexidade do jogo JUNTE-SE
- Estou sempre atualizado e não forçar-nos a conhecer em detalhe o banco de dados inteiro com mais rigoroso sistema WordPress
- Se algum outro plugin alterou o seu funcionamento através dos filtros, ver WPML , tudo vai funcionar perfeitamente
Para aqueles que desejam investigar todos os filtros possíveis, ver aqui .










Giustappunto'm 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 é Luís I usou o Gerenciador Tipo de conteúdo personalizado para a construção de uma feira grande, criei um tipo personalizado chamado "Expositor", onde eu criei os detalhes como Expositor:
Tipologia
Categoria
Fique N °
Inserindo fotos
etc ...
Eu preciso exibir corretamente em uma página personalizada que mostra tudo de um certo tipo, tais como:
Motores
Não. estande Expositor Nome (com links que levam a minha placa previamente criado com o Gerenciador de Conteúdo Personalizado Type)
Não. estande Expositor Nome (com links que levam a minha placa previamente criado com o Gerenciador de Conteúdo Personalizado Type)
Não. estande Expositor Nome (com links que levam a minha placa previamente criado com o Gerenciador de Conteúdo Personalizado Type)
Flores
Não. estande Expositor Nome (com links que levam a minha placa previamente criado com o Gerenciador de Conteúdo Personalizado Type)
Não. estande Expositor Nome (com links que levam a minha placa previamente criado com o Gerenciador de Conteúdo Personalizado Type)
Não. estande Expositor Nome (com links que levam a minha placa previamente criado com o Gerenciador de Conteúdo Personalizado Type)
etc .....
mais se você pode chreare da primeira página para uma busca por tipo - Nome - Categoria
como posso definir estes WP_Query coisas?
AJUDEM-ME! Olá Agradeço antecipadamente Louis