WordPress: Peça uma série de posts para qualquer campo

o un array di oggetti. A técnica que eu descrevo aqui é útil em muitas situações em que, por exemplo, temos um array de array ou uma array de objetos. , senza aver accesso alla select originale (sul database) che ha generato l'elenco (array) stesso: No WordPress, por vezes, pode precisar manipular uma lista de mensagens, no padrão array de stdClass Object sem ter acesso à seleção original (no banco de dados) que gerou a lista (array) em si:

1
2
3
4
5
6
7
Ordem
(
[0] => stdClass objeto
(
[ID] => 104
[Post_author] => 37
...

. No entanto, você pode encomendar uma tal array em um momento posterior, sem passar pelo banco de dados, usando a função php usort() . Isso permite que você execute uma espécie utilizando uma função callback de pessoal. o un altro stdClass Object : Por exemplo, imagine que você quiser encomendar o nosso post post_author ou por qualquer outro campo que, por sua vez, pode ser uma array ou outro stdClass Object :

1
2
3
4
5
6
7
8
9
10
/ **
* Mensagens array $ de objetos é o nosso "post" stdClass objeto
* /
$posts , "__sort" ) ; usort ($ posts, "__sort");

$a , $b ) { __ função sort ($ a, $ b) {
$a -> post_author == $b -> post_author ) return 0 ; if ($ a -> post_author == $ b -> post_author) return 0;
$a -> post_author > $b -> post_author ) ? - 1 : 1 ; // decrescente return ($ a -> post_author> $ b -> post_author) - 1: 1, / / descendente
/ / Return ($ a-> post_author <$ b-> post_author)? -1: 1, / / aumento
}

Jogar em mais ">" e menos "<" é a última declaração pode ser encomendado em ordem crescente ou decrescente.

Estas situações podem ser muito frequente em contextos avançados, onde, por exemplo, terá uma série de listas a serem verificados. Outro exemplo é no caso de combinações, onde várias listas de mensagens, o limite recuperado de diferentes blogs, devem ser encomendados.

1
2
3
4
5
6
7
8
9
10
11
$posts , $lista_1 , $lista_2 , $lista_3 , ..., $lista_n ) ; array_push ($ posts, lista_1 $, $ lista_2, lista_3 $, ..., $ lista_n);
/ **
* $ Posts é uma série de listas, listas de correio recuperado quem sabe
* Onde e quem sabe ...
* /
$posts , "__sort" ) ; usort ($ posts, "__sort");

$a , $b ) { __ função sort ($ a, $ b) {
$a -> ID == $b -> ID ) return 0 ; if ($ a -> ID == $ b -> ID) return 0;
$a -> ID < $b -> ID ) ? - 1 : 1 ; return ($ a -> ID <$ b -> ID) - 1: 1;
}

5 comentários para: ""

  1. 28 de marco de 2011 elia :

    Olá,
    Eu li seu artigo e se aproxima do que eu deveria fazer.
    Eu tenho que classificar as mensagens com base no valor de diferente campo personalizado;
    por exemplo ordenar por:
    - Preço
    - Nome
    - Colocar
    qual é a melhor maneira de proceder?
    obrigado

  2. 03 de novembro de 2011 Giovan Battista Fazioli :

    @ Elia :: a melhor maneira é usar o meta_query , introduzido com a versão 3.1 do WordPress. Encontre exemplos e documentação aqui . Por exemplo, você pode recuperar todas as mensagens que têm um preço meta_key igual a 100:

    1
    2
    3
    array ( 'meta_key' => 'prezzo' , 'meta_value' => '100' ) ; $ Args = gama ('meta_key' => 'preço', 'meta_value' => '100 ');
    get_posts ( $args ) ; $ Posts = get_posts ($ args);
    ...
  3. 03 de novembro de 2011 Ordem um array de arrays em PHP - Undolog.com - Undolog.com :

    [...] PHP função usort () vista para WordPress: Ordem uma série de posts para qualquer campo pode ser facilmente usado também para ordenar um array de arrays. Por exemplo, se [...]

  4. 06 de junho de 2012 Lorenzo_l :

    Me desculpe se a minha pergunta é incompreensível para você, me desculpe, mas eu não sei o tarminologia exata para me fazer entender melhor.

    Eu corro um blog criado por um amigo, que agora nem mais capaz de segui-lo.
    Nós criamos uma tabela que funciona como um índice para os vários links. Eu criar páginas "deck" e links para estes são automaticamente inseridos na tabela. No momento, eu não tenho a capacidade de classificar esses links de forma arbitrária!
    Eles são exibidos em ordem decrescente de inserção.

    Existe a possibilidade de implementação de um código para que ele possa, ao longo do tempo, decidir onde colocar os links para as páginas que editou dentro da Matrix?
    E exemplo: "em ordem alfabética" ou "tipo" ou "importância"?

    muito obrigado por sua disponibilidade!
    Lorenzo

  5. 07 de junho de 2012 Giovan Battista Fazioli :

    @ Lorenzo_l: Em parte, eu acho que eu sei, e é claro que é possível. Primeiro você rastrear onde o programa seria suficiente SQL SELECT que extrai os dados lá e adicione seu próprio tipo. Você precisa de, em última instância, a uma intervenção técnica que deve ser resolvido em poucos minutos.
    Se você quiser tentar, é claro, com as poucas indicações que eu tenho, você pode tentar adicionar a classificação por mim.
    A instrução SELECT deve ser parecido:

    1
    FROM .... SELECT * FROM ....

    Agora eu não sei os nomes dos campos, mas é o suficiente para que você digite no final:

    1
    FROM ... ORDER BY campo SELECT * FROM ... ORDER BY campo

    o non so. Onde está campo nome do campo da tabela, digite nome ou não sabe.
    Difícil de ser exaustiva aqui ... :)

Deixe um comentário

TAG XHTML permita: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de entrada:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL