Funções úteis para WordPress no functions.php

Ultimamente tenho feito muitos trabalhos(sites) utilizando o WordPress. E na maioria deles, sempre que utilizo a WP_Query ou até quero programar em PHP mesmo, preciso criar ou utilizar uma função no functions.php.

Mas o que percebi, é que sempre utilizo 3 funções. E resolvi compartilhar, pois se servem pra mim, podem servir para vocês que também trabalham com WordPress.

As funções servem para habilitar o menu do WordPress, retornar o id pelo permalink(post_name) e utilizar variáveis $_GET com WordPress

 

Habilitar Administração de Menus pelo Admin do WordPress no functions.php

Quase todos os sites que eu faço, eu habilito os Menus do próprio WordPress. Assim os redatores podem alterar os Menus e seus links

add_theme_support('menus'); //Basta inserir esse código no functions.php que já vai aparecer a opção Menu no Admin

 

 

Na minha opinião, essa função já devia ser nativa do WordPress, mas enquanto não sai, usem essa aí:

function get_id_by_post_name($post_name)
{
    global $wpdb;
    $id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$post_name."'");
    return $id;
}

Para saber mais sobre os Menus Personalizados do WordPress, acesse a documentação do wp_nav_menu()

 

Como utilizar variáveis $_GET no WordPress?

O WordPress não deixa trabalharmos com variáveis GET por padrão, mas basta adicionar um filtro na função query_vars com o nome da sua variável e você vai conseguir:

add_filter('query_vars', 'customquery_vars' );
function customquery_vars( $qvars )
{
    $qvars[] = 'variavel'; //Exemplo: http://url.com.br/?variavel=
    return $qvars;
}

Para utilizar no php, utilize conforme o exemplo abaixo:

global $wp_query;
echo $wp_query->query_vars['variavel'];

 

 

Se você também costuma utilizar algumas funções no WordPress e o seu functions.php sempre inicia do mesmo jeito, comenta aí que eu atualizo aqui!

7 ideias sobre “Funções úteis para WordPress no functions.php

  1. Oi Leo, estou procurando uma maneira de listar os posts mais visto sem plugin, porem a maioria vejo que usam a uma variavel ou campo no bd mais ele lista pelos mais comentados e não pelos visto de fato e real, fuçando encontrei vc em um comentário no forum do wordpress de link http://br.forums.wordpress.org/topic/ordenar-post… la vc mostra esse codigo:

    <?php
    $datas = $wpdb->get_results(
    "
    SELECT
    *
    FROM
    wp_postmeta
    WHERE
    meta_key = 'Data'
    "
    );

    foreach ( $datas as $data )
    {
    $data_errada = $data->meta_value;
    $data_array = explode('/',$data_errada);
    $data_nova = $data_array[2]."-".$data_array[1]."-".$data_array[0];

    $wpdb->update(
    'wp_postmeta',
    array(
    'meta_value' => $data_nova
    ),
    array( 'meta_id' => $data->meta_id )
    );
    }

    Procurei esse campo na tabela que vc falou o campo views, devo inserir, como faço a tabela referida encontrei, desde já te agradeço.

    • Desculpa Léo não era esse código acima e sim esse:

      <?php
      $mais_lidos = new WP_Query(array(
      'post_type' => 'post',
      'posts_per_page' => 4, //Se deixar em branco ele pega o default do Admin, Deixe -1 para ilimitado
      'meta_key' => 'views', //Aqui fica o name do seu custom_field (é o que está no select dropdown)
      'orderby' => 'meta_value', //Deixe assim
      'order' => 'DESC', //Do maior para o menor, mude para ASC se quiser do menor para o maior.
      ));

      while ($mais_lidos->have_posts()): $mais_lidos->the_post();
      the_title();
      endwhile
      ?>

      • Romulo, poderia por gentileza postar o seu link da sua pergunta no Fórum do WordPress. Teria o prazer de responder no Fórum para ajudar mais a comunidade.

        De qualquer forma, sem criar um plugin, você provavelmente não tem a variável da tabela "views". Não tenho certeza se o WordPress já implementou essa opção de incrementar um número na tabela de posts por cada visualização. Você precisaria fazer uma função para isso.

        O seu sistema teria que efetuar um insert na tabela de posts em um campo chamado "views", neste caso.

        O Plugin facilitaria sua vida…e evitaria qualquer bug gerado no seu sistema. Sem falar na parte de desempenho e perfomance.

  2. Oi Leo,

    Sou novato em programação em PHP e WordPress.

    Há dias busco solução para pegar uma variável da URL e mostrá-la no WORDPRESS…

    Sei que tenho que usar $_GET…, mas o WP não está aceitando as orientações em PHP…

    Como faço para editar o functions.php e colocar a instrução que você passou a cima?

    Desculpe a minha ignorância, mas serei grato se puder me ajudar neste impasse que estou ha dias.

    Vlw

    • Eduardo, você pode baixar o arquivo functions.php e colocar este script embaixo de tudo.

      Só certifique-se que o código esteja entre a tag do PHP.

      Ex: <?php //código aqui ; ?>

    • Eduardo, para utilizar o $_GET você precisa programar num arquivo de template do tipo php. Utilizando o editor do WordPress você não terá muito sucesso.

      Lembrando que essas dicas são de nível intermediário para avançado em programação.

  3. e ai Leo?!
    o WordPress também permite ao desenvolvedor, debugar a aplicação. E para utilizar a feature mais facilmente,
    comento a linha 81 do wp-config e logo em seguida acresento o codigo seguinte:
    if($_GET['debug']=='on'):
    try{define('WP_DEBUG', true);}
    catch(Exception $e){define('WP_DEBUG', false);}
    endif;
    ficando desta forma:
    //define('WP_DEBUG', false);
    if($_GET['debug']=='on'):
    try{define('WP_DEBUG', true);}
    catch(Exception $e){define('WP_DEBUG', false);}
    endif;

    Sempre que preciso verificar algo, apenas acrescento "?debug=on" à URL

Deixe uma resposta para Rômulo Quintanilha Cancelar resposta