17 de mar. de 2017

Função get posts Wordpress - Exemplos de usos, parâmetros e retorno.

Uma das funções mais importantes e muito utilizada no desenvolvimento com o Wordpress é a função get_posts(). Por padrão, o ele salva na tabela wp_posts do banco de dados todas as páginas, posts, mídias e qualquer outro post_type. É nesse ponto que entra a função get posts, com ela é possível retornar qualquer item que esteja salvo nessa tabela. Por exemplo, para retornar a lista de todas as páginas, podemos usar o parâmetro "page", dentro da função. Nesse posts explicaremos mais detalhadamente o uso da função.

Uso da função

Veja abaixo, exemplos para o uso do get_posts().

Como você pode ver, é passado um parâmetro chamado "$args", dentro da função. Essa variável, é um array composto com vários outros parâmetros utilizados para filtrar os itens retornados.

 <?php
 $args = array (
    'posts_per_page'   => 5,
    'offset'           => 0,
    'category'         => '',
    'category_name'    => '',
    'orderby'          => 'date',
    'order'            => 'DESC',
    'include'          => '',
    'exclude'          => '',
    'meta_key'         => '',
    'meta_value'       => '',
    'post_type'        => 'post',
    'post_mime_type'   => '',
    'post_parent'      => '',
    'author'       => '',
    'author_name'       => '',
    'post_status'      => 'publish',
    'suppress_filters' => true
 );
 $posts = get_posts($ args);
?>


<?php
global $post;
$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
 <li>
  <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
 </li>
<?php endforeach; 
wp_reset_postdata();
?>
 

Parâmetros da função get_posts()

order:  Use o valor "ASC" para ordem crescente e "DESC" para ordem decrescente. Associe esse parâmetro ao próximo.

orderby: Classifica a ordem de retorno dos posts. A configuração padrão é a ordem alfabética pelo título do item.

Valores para o parâmetro orderby:
  • id - Ordem pelo ID
  • author - Ordem por autor.
  • title - Ordem por título.
  • date - Ordem por data.
  • modified - Ordem pela data da última modificação.
  • parent - Ordem pela página pai. Deve ser passado o ID da página.
  • rand - Ordem aleatória.
  • comment_count - Ordem pelo número de comentários.
  • menu_order - Ordena pelo campo "Order" na caixa "Edit Page Attributes", mas pode ser usado para qualquer tipo de postagem com valores para 'menu_order'. 
  • meta_key - Você pode passar o nome de algum campo personalizado e utilizar os dois próximos parâmetros para ordenar por esse campo.
  • meta_value - Aqui você pode definir um valor específico para o campo "meta_key".
  • meta_value_num - Ordena o campo passado em "meta_key" por ordem numérica.

posts_per_page: Quantidade de posts retornados para cada página, deve ser usado junto com o parâmetro "page".

page: Número da página para os posts. Por exemplo, se você possuir 15 posts e o posts_per_page estiver definido em 5, na página 1 irá aparecer os 5 primeiros posts retornados, na página 2, os próximos 5 e assim por diante.

category: Você filtrar os posts pelo ID de determinada categoria.

category_name: Semelhante ao anterior, porém, aqui você passa o nome da categoria e não o ID.

include: Pode ser passado um Array de ID's dos posts para que eles seja incluídos no retorno

exclude:  Pode ser passado um Array de ID's dos posts para que eles seja excluídos do retorno

post_type: Defini o tipo de post que vai ser retornado. Tem o valor padrão 'post'. Ex: attachmentm, page etc.






21 de mar. de 2014

Utilizando JSON em Java

Para que iniciemos esse tutorial você deve primeiro importar o JSON para o seu projeto. Clique aqui para ver o tutorial "Como importar JSON para o Netbeans".

Ao utilizar o JSON você pode guardar as informações da seguinte madeira:

{"id":5, "nome":"João", "endereco":"Rua B"}

id = chave;
5 = valor;

nome = chave;
João = valor; 

endereco = chave;
Rua B = valor;

Alguns métodos: 

Criar um objeto JSON:
JSONObject my_obj = new JSONObject();
Dessa forma cria um json vazio. 

                             OU

 / = não considera as aspas.

String a = "{\"id\":5, \"nome\":\"João\", \"endereco\":\"Rua B\"}"; 
JSONObject obj = new JSONObject(String a); 
Dessa forma o json obj irá vim com as chaves e os valores da String a.

Adicionar valor e chave;
nomeObjeto.put("chave", "valor");

Exemplo: 
nomeObjeto.put("ano", 2014);    //adiciona na chave "ano" o valor "2014"

Obter um valor de acordo com a chave:
book.get("chave");

Exemplo:
nomeObjeto.get("titulo");     //retorna o valor da chave "titulo"

Remover um valor:
nomeObjeto.remove("chaveDesseValor"); 

Exemplo:
nomeObjeto.remove("ano"); 

Transformar o JSON em uma única String:
 String b = nomeObjeto.toString();

Como importar JSON para o Netbeans

O JSON é uma coleção não ordenada suportada em Java, C#, PHP, JavaScript, C, C++ , entre outras. Nesse tutorial você aprenderá como importar e configurara o JSON para o NetBeans.

Primeiramente você deve fazer o download do json.org, clicando aqui.

Após ter baixado o json, execute o NetBeans, selecione o projeto, na qual você deseja importar o JSON, clique com o botão direito e selecione "propriedades".


Na janela que se abrirá, clique em "Biblioteca", no lado direito, como você pode ver na imagem abaixo.


No lado esquerdo há a opção "Adicionar JAR/Pasta" clique nela, após isso selecione o JSON, que foi baixado no início do tutorial. 

Caso tenha dúvidas deixe nos comentários.

14 de fev. de 2014

Como passar um ArrayList para um arquivo texto Java

Nesse tutorial bem simples, estaremos vendo como é possível salvar o conteúdo de um ArrayList para um arquivos de texto no Java e vice-versa. Para isso utiliza-se as seguintes classe:

File: Terá a função de ciar o arquivo;
BufferedWriter, FileWriter: Terão a função de escrever no arquivo.
BufferedReader: Terá a função de ler o arquivo para colocar seu conteúdo em outro Array

Para saber mais sobre leitura e escritas de arquivos, clique aqui.

Veja também:

Inicialmente deve-se criar um ArrayList, na qual se deseja salvar o conteúdo.

 ArrayList<String> contatos = new ArrayList<String>();

Após isso deve-se criar um objeto da classe File.

File arquivo = new File("tutorial.txt");     //criar o objeto file
            if (arquivo.exists() != true) {         //se o arquivo tutorial.txt não existir, ele o cria
                arquivo.createNewFile();       
            }


Agora é preciso criar um objeto da classe FileWriter e da classe BufferedWriter:

FileWriter escre = new FileWriter(arquivo);
BufferedWriter escrever = new BufferedWriter(escre);

Ao final devemos criar um loop for que irá percorrer todo o Array e salvará cada linha no arquivo.

  for (int i = 0; i < listaContatos.size(); i++) {
                escrever.write(listaContatos.get(i));
                escrever.newLine();
            }


Mas para que o arquivo seja lido e seu conteúdo coloca em outro Array, devemos fazer mais algumas coisas:

Criação do BufferedReader para ler o arquivo. 

 BufferedReader ler = new BufferedReader(new FileReader("tutorial.txt")); //ler o tutorial.txt
            for (int i = 0; i < listaContatos.size(); i++) {  //percorre todo o array
                obterListaContato.add(ler.readLine());
            }


Veja abaixo o código completo e comentado:

 public static void main(String[] args) {
        ArrayList<String> listaContatos = new ArrayList<String>();
        ArrayList<String> obterListaContato = new ArrayList<String>();
        listaContatos.add("João");
        listaContatos.add("Maria");
        listaContatos.add("Sem nome");
        try {

            File arquivo = new File("tutorial.txt");  //criação do file arquivo.txt, ficará no local do projeto
            if (arquivo.exists() != true) {  //só cria outro arquivo, se não houver um igual.
                arquivo.createNewFile();
            }

            FileWriter escre = new FileWriter(arquivo, true);
            BufferedWriter escrever = new BufferedWriter(escre);

            for (int i = 0; i < listaContatos.size(); i++) {  //percorre todo o array
                escrever.write(listaContatos.get(i));      //obtem o valor i do array e salva no arquivo com o método writer
                escrever.newLine();           //pula uma linha, assim cada posição do array é salva em uma linha
            }
            escrever.close();          // os objetos devem ser fechados para que a edição seja salva
            escre.close();

            BufferedReader ler = new BufferedReader(new FileReader("tutorial.txt"));

            for (int i = 0; i < listaContatos.size(); i++) {  //percorre todo o array
                obterListaContato.add(ler.readLine());       //adicionar cada linha ao arquivo
            }
            for (int i = 0; i < obterListaContato.size(); i++) {
                System.out.println(" = " + obterListaContato.get(i));
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

13 de fev. de 2014

Como criar ArrayList de objetos em Java

Nesse tutorial estaremos aprendendo como salvar objetos dentro de um ArrayList. Mostraremos em outro tutorial, que você pode criar algo que simula um banco de dados e salvar esses Arrays. 
Veja abaixo como criar o ArrayList, salvar os objetos e obter determinados valores:
Instanciando o objeto ArrayList:
ArrayList<Agenda> listaContatos = new ArrayList<Agenda>();

Agenda = nome da classe que terão seus objetos guardados.


Adicionando um objeto ao ArrayList:
Agenda novoContato = new Agenda();
listaContatos.add(novoContato);

Obtendo um valor:
listaContatos.get(i).getNome()
i = posição do objeto no Array;
getNome() = método da classe Agenda que retorna uma String com o nome;

Agora mostraremos um exemplo prático de uma agenda de contatos, na qual é possível adicionar, remover, pesquisar e imprimir os contatos.


  //CLASSE AGENDA
public class Agenda {
    public String nome;
    public String endereco;
    public int telefone;

    public Agenda(String nome, String endereco, int telefone) {  //CONSTRUTOR DA CLASSE
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public int getTelefone() {
        return telefone;
    }

    public void setTelefone(int telefone) {
        this.telefone = telefone;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

//CLASSE PRINCIPAL
 public class Tela {
    public static void main(String[] args) {

        Scanner entrada = new Scanner(System.in);
        ArrayList<Agenda> listaContatos = new ArrayList<Agenda>();  //CRIAÇÃO DO ARRAY

        String a = null;
        while (a == a) {
            System.out.println("1- adicionar");
            System.out.println("2- mostrar");
            System.out.println("3- procurar");
            System.out.println("4- excluir");
            int aux = entrada.nextInt();
            switch (aux) {
                case 1:
                    Agenda novoContato = new Agenda("", "", 0);
                   
                    System.out.println("Digite o nome do contato");
                    String nome = entrada.nextLine();
                    novoContato.setNome(nome);

                    System.out.println("Digite o endereço do contato");
                    String endereco = entrada.nextLine();
                    novoContato.setEndereco(endereco);

                    System.out.println("Digite o telefone do contato");
                    int telefone = entrada.nextInt();
                    novoContato.setTelefone(telefone);

                    listaContatos.add(novoContato);


                    break;

                case 2:

                    for (int i = 0; i < listaContatos.size(); i++) {
                        System.out.println("Nome: " + listaContatos.get(i).getNome());
                        System.out.println("Telefone: " + listaContatos.get(i).getTelefone());
                        System.out.println("Endereço: " + listaContatos.get(i).getEndereco());
                        System.out.println("");
                    }

                    break;

                case 3:
                    System.out.println("Digite o nome para a procura");
                    String nomeProcura = entrada.nextLine();
                    for (int i = 0; i < listaContatos.size(); i++) {
                        if (listaContatos.get(i).getNome().equals(nomeProcura)) {
                            System.out.println("Nome: " + listaContatos.get(i).getNome());
                            System.out.println("Telefone: " + listaContatos.get(i).getTelefone());
                            System.out.println("Endereço: " + listaContatos.get(i).getEndereco());
                            System.out.println("");
                        }
                    }
                    break;
                case 4:

                    System.out.println("Digite o nome para a procura");
                    String excluir = entrada.nextLine();
                    for (int i = 0; i < listaContatos.size(); i++) {
                        if (listaContatos.get(i).getNome().equals(excluir));
                        listaContatos.remove(i);
                    }
                    break;
                default:
                    break;

            }
        }

    }

12 de fev. de 2014

Adicionar conteúdo em um arquivo Java sem apagar conteúdo existente

Muitas programadores iniciantes tem se deparado com um pequeno problema ao criar um objeto da classe FileWriter para gravar um conteúdo em um arquivo já existente. O que ocorre é que, ao adicionar um novo conteúdo, o conteúdo que já existente é apagado. Isso pode ocorrer devido ao fato de não se adicionar o parâmetro boolean append.

Esse problema pode ser resolvido facilmente, basta instanciar a classe corretamente da seguinte forma:

FileWriter fw = new FileWriter(local, boolean append);

local = diretório do arquivo ou objeto da classe File;

boolean append
true : Ao escrever no arquivo, o conteúdo existente não será substituído, assim o novo conteúdo será escrito no final.
false >
Ao escrever no arquivo, o conteúdo existente será substituído.

Veja mais:
Criação, leitura e escrita de arquivos de texto em Java

11 de fev. de 2014

Como excluir uma linha de um arquivo de texto em Java

O Java oferece diversas classes para manipulação de arquivos. Mas não encontramos algum método que tenha a função de excluir determinada linha, devido a esse fato ensinaremos, nesse tutorial, como excluir uma determinada linha que contém um texto.


Dependendo do caso em que você queira excluir uma linha, seu código terá problemas, pois se, por exemplo, você desejar excluir a linha com o nome "João", se alguma outra linha conter esse nome, ocorrerá um erro e ambas serão excluídas. A solução para isso é você criar um id para cada linha, assim se você quiser excluir a linha do cadastro "joão", excluirá pelo seu id, assim "id=01".

Primeiramente deve-se criar um ArrayList para salvar as linhas que não serão excluídas. Após isso um while deverá ser usado para procurar a linha que será excluída, enquanto a linha for lida e nela não conter o conteúdo da linha que se quer remover, ela é salva no ArrayList, ao final limpa-se o arquivo e transfere-se o arquivo do ArrayList para o arquivo.



ArrayList<String> guardarLinhas = new ArrayList<String>();

        String linha = "";
        String palavra = "linha excluida"

        try {
            BufferedReader in = new BufferedReader(new FileReader("arquivo.txt"));

            FileWriter fw = new FileWriter("dados/arquivo.dat", true);
            BufferedWriter bw = new BufferedWriter(fw);
          

         while ((linha = in.readLine()) != null) {

                if (linha.contains(
palavra)) {      //se na linha não conter a palavra, ela é salva
                } else {
                   
guardarLinhas .add(linha);
 
                }
            }
            fw.close();
            bw.close();
            in.close();
            File file = new File("arquivo.txt");  //limpa os dados do arquivo
            file.delete();

            File file2 = new File("arquivo.txt");  //cria um novo arquivo
            file2.createNewFile();
            FileWriter fw2 = new FileWriter("dados/arquivo.dat", true);
            BufferedWriter bw2 = new BufferedWriter(fw2);

            for (int i = 0; i < guardarCadastros.size(); i++) {   //transfere o ArrayList para o arquivo
                bw2.write(guardarCadastros.get(i));
                bw2.newLine();

            }
            bw2.close();
            fw2.close();

        } catch (IOException e) {
        }


 Outro Exemplo:

   public static void main(String[] args) {
    File fil = new File("arquivo.txt");
   
    try{
    FileReader fr = new FileReader(fil);
    BufferedReader br = new BufferedReader(fr);
   
  
  
    String linha = br.readLine();
    ArrayList<String> salvar = new ArrayList();
   
    while(linha != null){
       
        if(linha.equals("linha3") == false){
            salvar.add(linha);
        }
       
        linha = br.readLine();
    }
   
   
    br.close();
    fr.close();
    FileWriter fw2 = new FileWriter(fil, true);
    fw2.close();
   
   
    FileWriter fw = new FileWriter(fil);
    BufferedWriter bw = new BufferedWriter(fw);
   
    for(int i = 0; i<salvar.size(); i++){
        bw.write( salvar.get(i) );
        bw.newLine();
    }
    bw.close();
    fw.close();
   
    }catch(IOException ex){
       
    }
    }