Anderson Makiyama

Anderson Makiyama é um programador de computador que dedica a maior parte de seu tempo criando soluções para a Internet e escrevendo sobre o assunto. É formado em Sistemas para a Internet pela faculdade Anhanguera. Ele considera-se um blogger profissional pois trabalha em casa através da internet. Vive com a esposa no Brasil na cidade de Joinville. Ele mantém um site na internet no endereço: http://GanharDinheiroBlog.net

Quando usar ? e quando usar & nos parâmetros de URL

Você já ficou em dúvida de quando usar interrogação e de quando usar e comercial para definir os parâmetros de urls?

Então você está com sorte, pois a seguir vou te mostrar uma regra infalível para nunca mais ficar na dúvida.

Veja o vídeo abaixo:

Em suma, se o link já tiver ? o próximo e os próximos serão &. Do contrário, você precisa iniciar com uma interrogação e nos próximos usar o e comercial.

Fica a dica.

Presell Plugin Pré Venda Realizada

Já imaginou usar o poder do sim para alterar o estado de espírito para um estado positivo da mente?

Pois é, o que ocorre é que as pessoas adoram responder perguntas de assuntos que elas tem interesse, e esse plugin pré venda realizada trás isso até você.

Com esse plugin você pode criar interativos formulários para preparar o lead para a página de vendas.

Veja o vídeo:

Se você conseguir fazer o visitante responder sim para as três perguntas, ele já vai entrar na página de vendas com um estado positivo da mente, o que aumenta as chances dele aceitar sua proposta

Você pode adquirir esse plugin aqui: Plugin Presell Pre Venda Realizada

Como Instalar e Ativar Plugins

Pode ser uma dúvida simples, mas é fato que várias pessoas ainda não sabem como instalar e ativar plugins.

Nesse vídeo eu mostro como fazer a instalação e ativação de plugins facilmente.

Em suma, plugins para instalar um plugin basta acessar o painel de gerenciamento do seu blog, ir em Plugins >> Adicioanar Novo >> Upload

Daí faz o upload do arquivo .zip e ativa o plugin.

Veja:

Detalhe que esse processo de licença é refente aos plugins de minha autoria, se for um plugin grátis, não haverá esse processo, ok.

Como aumentar a segurança do WordPress

Você sabia que o WordPress não tem nenhum sistema de proteção no login. Pois é, isso quer dizer que se algum hacker quiser, poderá usar a técnica de força bruta para tentar descobrir seu login e senha.

Funciona assim, o hacker cria um software para ir tentando todas as combinações possíveis até descobrir seu login e senha corretos.

Para piorar existem programas que podem ser comprados ou baixados na internet que fazem isso, e colocam na mão de qualquer leigo esse poder.

Então, qualquer curioso é um potencial invasor do seu website.

Para resolver isso foi desenvolvido o plugin Guardião WP

Veja o vídeo abaixo:

Então, se você quer aumentar a segurança do seu site wordpress, sugiro que instale esse plugin em seu site.

Dentre os recursos, podemos destacar:

  1. Dupla proteção com limite de logins falhos e imagem com código na página de login
  2. Bloqueio de IP automático após limite ser excedido
  3. Defina o visual da imagem com código
  4. Defina limite de tentativas
  5. Defina ação após limite ser excedido
  6. Receba alertas de logins com sucesso diretamente em seu email
  7. ETC.

Como por Links externos em balões do Youtube

Talvez você não saiba, mas é possível por links externos na frente dos seus vídeos do Youtube através de balões.

Esse é um recurso Nativo do Youtube, mas para ele estar disponível você precisa confirmar sua conta e confirmar que você é o titular do domínio.

No caso, você vai conseguir usar links apenas com o domínio que você confirmou titularidade. Então, para conseguir jogar direto do youtube para uma página de Vendas eu indicaria o plugin de camuflamento HotLinks Plus

Veja o passo a passo no vídeo abaixo:

Com essa dica você pode conseguir aumentar a conversão do seu canal. Pois é fato que muitos não clicam em links de comentários, mas colocando o link na frente do vídeo com balões, você vai conseguir fazer o visitante clicar e acessar seu site ou a página de vendas.

POO PHP 5, Objectos, Referências, Clones

PHP 5 ou superior começou a trabalhar com suporte para Programação Orientada a Objetos. Na verdade, desde o PHP 4, já havia alguns poucos recursos OO, mas é somente a partir do PHP 5 que a coisa ficou melhor. Inclusive, muitos afirmam veementemente que PHP só pode ser considerado uma linguagem de programação orientada a objetos a partir da versão 5.

Neste artigo em especial eu quero tratar com você, caro leitor, sobre os objetos, as referências e o comando clone do PHP. A seguir, passarei vários exemplos bastante simples, com o intuito de diferenciar como o PHP trata os objetos e suas referências.

POO PHP 5, Objectos, Referências, Clones

Em suma, há três formas de se referenciar objetos, ou cloná-los no PHP. São elas: através do sinal de igual “=”, através do comando clone, e através do sinal de igual, mas com o e comercial “&” antes do nome do objeto. Abaixo vou explicar cada uma delas, e seus respectivos comportamentos. Vamos lá…

Objetos copiados com sinal de igual”=”

Quando você utiliza o sinal de igual para “copiar” uma variável objeto, ambas as variáveis passam a ser ponteiros apontando para o mesmo objeto. Todas as mudanças que o ponteiro b fizer no objeto, também estarão acessíveis através do outro ponteiro $a.

Veja o Exemplo:

class TESTE {
    public $valor = 1;
}  

$a = new TESTE;
$b = $a;

$b->valor = 2;
echo "b->valor recebeu valor 2<br>";

echo "a->valor= ".$a->valor."<br>";

$b->valor = "9";

echo "b->valor recebeu valor 9<br>";

echo "a->valor= ". $a->valor."<br>";

echo "b->valor = ". $b->valor."<br>";

$b = new TESTE;

echo "b = new TESTE<br>";

echo "a->valor= ".$a->valor."<br>";

echo "b->valor = ". $b->valor."<br>";

Este código acima imprimirá na tela o seguinte:

b->valor recebeu valor 2
a->valor= 2
b->valor recebeu valor 9
a->valor= 9
b->valor = 9
b = new TESTE
a->valor= 9
b->valor = 1

Note que toda vez que b modifica valor para outro número, através do ponteiro a obtemos o valor modificado por b. Mas, note que, quando b receber um novo valor, no caso passa a apontar para uma nova instância do objeto, a ligação entre a e b não existem mais. Nesta hora, a aponta para a primeira instância e b para a segundo. Por isso, no final, b está com valor 1 (que é o valor inicial da propriedade valor da classe TESTE na segunda instanciação), enquanto a está com valor igual a 9, referente ao atual valor da variável valor da primeira instância.

Objetos copiados com sinal de igual”=” porém com referência &

Quando você “copia” um objeto, colocando antes do nome dele o e comercial “&”, você cria na verdade duas referências para um único ponteiro que aponta para o objeto instanciado. Imagine o seguinte, existe um ponteiro que aponta para um objeto, e existem duas variáveis $a e $b que usam o mesmo ponteiro, que são referências do mesmo ponteiro. Veja o código abaixo:

class TESTE {
    public $valor = 1;
}  

$a = new TESTE;
$b = &$a;

$b->valor = 2;
echo "b->valor recebeu valor 2<br>";

echo "a->valor= ".$a->valor."<br>";

$b->valor = "9";

echo "b->valor recebeu valor 9<br>";

echo "a->valor= ". $a->valor."<br>";

echo "b->valor = ". $b->valor."<br>";

$b = new TESTE;

echo "b = new TESTE<br>";

echo "a->valor= ".$a->valor."<br>";

echo "b->valor = ". $b->valor."<br>";

O retorno do código acima vai ser:

b->valor recebeu valor 2
a->valor= 2
b->valor recebeu valor 9
a->valor= 9
b->valor = 9
b = new TESTE
a->valor= 1
b->valor = 1

Neste segundo caso, quando b passou a ser um ponteiro apontando para um segundo objeto, depois de “new TESTE”, a por sua vez, também fez o mesmo. Na verdade, como b era uma referência de a, e vice-versa, qualquer modificação em qualquer um dos ponteiros, afeta os dois simultaneamente. Por isso, quando b passou a apontar para o novo objeto, automaticamente a também.

Objetos copiados com o comando Clone

O PHP oferece ainda a comando clone, que cria uma cópia. Neste caso, cópia tem o sentido mais correto, pois quando você usa clone para criar uma cópida, você passa a ter dois ponteiros distintos, que apontam para dois objetos também distintos. Embora a aponto para uma instância da classe TESTE e b também, b na verdade aponta para uma outra instância, que podemos chamar de 2. Então, o que o ponteiro a modifica não afeta a instância 2. E o que o ponteiro b modifica na instância 2 não afeta o a instancia 1.

Veja o código:

class TESTE {
    public $valor = 1;
}  

$a = new TESTE;
$b = clone $a;

$b->valor = 2;
echo "b->valor recebeu valor 2<br>";

echo "a->valor= ".$a->valor."<br>";

$b->valor = "9";

echo "b->valor recebeu valor 9<br>";

echo "a->valor= ". $a->valor."<br>";

echo "b->valor = ". $b->valor."<br>";

$b = new TESTE;

echo "b = new TESTE<br>";

echo "a->valor= ".$a->valor."<br>";

echo "b->valor = ". $b->valor."<br>";

O retorno disso será:

b->valor recebeu valor 2
a->valor= 1
b->valor recebeu valor 9
a->valor= 1
b->valor = 9
b = new TESTE
a->valor= 1
b->valor = 1

Então, como você pode ver, o comando clone cria exatamente um clone, onde cada clone possui seu próprio ponteiro e um não interfere na vida do outro. Por isso, quando b recebeu valor 2, a continuou com valor 1. O mesmo ocorreu quando b recebeu valor 9. E, por fim, quando b instanciou um novo objeto, a continuou com valor igual a 1. Por fim, a estava apontando para uma instancia 01, e b para uma terceira instancia 03. A instância 02 deixou de existir. Em todo caso, é bom limpar a variável atribuindo a ela o valor null, antes de colocar outro valor nela.

Por que o wp_insert_post Não Cadastra <object>,<embed>, <iframe> e outras Tags HTML

O WordPress possui filtros em seus sistema. Esses filtros limpam o conteúdo de uma publicação quando você está criando novos posts através de algum script PHP com alguma função de criação de posts, como a wp_insert_post.

Ao que parece, o WordPress chama a função sanitize_post() quando um post está sendo criado por um usuário não autenticado no sistema, ou seja, que não efetuou login. Essa função aplica os filtros, que por sua vez excluem diversas tags html, como objet, embed, iframe, etc.

Para evitar que esses filtros sejam aplicados, conheço duas maneiras, veja a seguir:

Por que o wp_insert_post Não Cadastra <object>,<embed>, <iframe> e outras Tags HTML

Veja a seguir, duas alternativas para desativar a filtragem na criação de posts, páginas do seu blog WordPress, através de script PHP.

Desativar filtros do conteúdo no wp_insert_post: Ideia 01

A primeira alternativa para os conteúdo não ser filtrado é um parâmetro filter que deve ser passado junto com os outros parâmetros para a função wp_insert_post. Veja o código abaixo:


$post_id = wp_insert_post(
    'post_title' => ,
    'post_content' => ,
    'post_status' => 'publish',
    'post_category' => array( get_cat_ID('lolcat') ),
    'post_date' => date('Y-m-d H:i:s', strtotime('-24 hour')),
    'post_date_gmt' => date('Y-m-d H:i:s', strtotime('-20 hour')),
 
    // e abaixo a parte mais importante
    'filter' => true
);

Desativar filtros do conteúdo no wp_insert_post: Ideia 02

A segunda alternativa é remover os filtros com o comando remove_filter, oferecido pelo próprio wordpress. Veja o código abaixo:

remove_filter('content_save_pre', 'wp_filter_post_kses');
remove_filter('content_filtered_save_pre', 'wp_filter_post_kses');
					
wp_update_post( $my_post );
					  
add_filter('content_save_pre', 'wp_filter_post_kses');
add_filter('content_filtered_save_pre', 'wp_filter_post_kses');

Note que primeiro foi removido os filtros, criado o post e depois reativado os filtros. Esses filtros foram criados por motivo de segurança, então, é prudente sempre reativá-los após a criação do post.

Conclusão

Fazendo Assim, você conseguirá cadastrar qualquer tag html, como object, embed, iframe, html, etc. no conteúdo de artigos, mesmo utilizando algum script php e mesmo sem estar logado no sistema.

Mas, eu lembrei aqui dos shortcodes do WP, então, uma terceira alternativa pode ser substituir o código html que você quer inserir, e que está sendo excluído pelos filtros do WordPress, por uma shortcode. Por exemplo, se você está querendo inserir um iframe, poderia antes em vez da tag html do iframe, passar para wp_insert_post algo do tipo [meu_iframe]url_aqui[/meu_iframe]. Este código não seria filtrado e você poderia inseri-lo no conteúdo de qualquer post sem nenhum problema. Porém, note que para a mágica funcionar, você deverá criar as shortcodes, que poderia ser algo do tipo:

function my_iframe($attr,$content){

   $code = "<iframe src='". $content."' width='200' height='500'></iframe>";

   return $code;
}
add_shortcode('meu_iframe','my_iframe');

Note que este código deveria ser colocado no arquivo functions.php do seu tema wordpress atual, para de fato funcionar conforme o esperado. Esta é uma ideia, às vezes até melhor que as anteriores, viável principalmente quando se quer permitir apenas poucas tags html que estão sendo filtradas no blog WP. Todavia, se você está inserindo várias tags html, uma das alternativas anteriormente sugeridas é o mais indicado.

Como Executar um Shortcode fora do conteúdo do WordPress

Quando você insere um shortcode dentro do conteúdo do WOrdpress, a execução dele é automática. Todos os shortcodes encontrados no conteúdo do blog são executados antes de o WordPress exibir o conteúdo para o usuário. Porém há situações onde você pode querer executar um shortcode fora do contexto do conteúdo. Por exemplo, se você quisesse executar um shortcode de forma a exibir o retorno dele no rodapé do seu blog WordPress, como proceder? Continue lendo que este artigo trata exatamente sobre este tema:

Como Executar um Shortcode fora do conteúdo do WordPress

A boa notícia é que o WordPress já possui em seu núcleo uma função para invocação de shortcodes, para você poder manualmente executá-los via script a qualquer momento. A função chama-se do_shortcode. Nome sugestivo, né?

Como parâmetro à função do_shortcode, passe o próprio shortcode que deve ser executado. Veja o exemplo:

do_shortcode('[meu_shortcode_aqui]');

Claro que você deve substituir ‘[meu_shortcode_aqui]’ pelo nome do shortcode que você quer executar. Note que se o seu shortcode possuir atributos e conteúdo, você pode passá-los para do_shortcode normalmente. Veja o exemplo 2:

do_shortcode('[meu_shortcode_aqui atributo1=x atributo2=y]conteudo_aqui[/meu_shortcode_aqui]');

Lembrando que todos os atributos são convertidos em um array assossiativo, o qual é passado como primeiro parâmetro, e o conteúdo é passado como segundo parâmetro (string). Então, se você estiver criando uma função de shortcode, para obter o valor de um atributo específico basta pegar o valor do array que possui como índice o nome do atributo desejado. Como por exemplo: $attr[‘atributo1’];

Executando shortcode no rodapé do site

Se você quer exibir o retorno de um shortcode no rodapé do seu blog, você pode abrir o arquivo footer.php que fica dentro da pasta do tema atual do seu blog. Com o arquivo footer.php aberto em seu editor preferido, procure a posição exata onde quer exibir o retorno do shortcode e insira a chamada do_shortcode(‘[meu_shortcode_aqui]’), sem esquecer de usar o echo, para que o valor retornado seja impresso para o usuário.

Executando shortcode no cabeçalho do site

Normalmente o arquivo responsável pelo cabeçalho do site é o header.php que fica dentro da pasta do tema atual do seu blog. Então, para executar e obter o retorno de um shortcode, basta abrir esse arquivo para edição e inserir a chamada do_shortcode(‘[meu_shortcode_aqui]’) na posição desejada.

Conclusão

Como você pôde notar, é muito fácil executar shortcodes fora do content do wordpress. O WP já preocupou-se com essa necessidade e já disponibiliza para nós a função do_shortcode, que serve exatamente para este propósito. Bom, se ficou alguma dúvida sobre execução e obtenção de valores de retorno de shortcodes fora do conteúdo do blog, não hesite em deixar sua dúvida.

Como desativar Atualização automática do blog WordPress

Desde a versão 3.7 o WordPress começou a fazer uso de um recurso de auto atualização. Isso significa que a partir da versão 3.7 o WP passou a fazer update automático para a mais nova versão disponível. Então se for lançada uma versão superior, vamos supor a 4.0, o seu blog será atualizado automaticamente.

Esse recurso vem para ajudar, mas também pode ser uma pedra no seu sapato. Os desenvolvedores alegam que o WordPress precisa fazer a atualização automática para garantir a segurança. No caso, se há uma nova versão disponível é porque erros ou melhorias foram desenvolvidas, e portanto não há por que não instalá-las. Será?

Acontece que uma atualização pode significar problemas para o seu blog, pois pode ocorrer do seu tema atual, bem como plugins que estejam instalados não serem compatíveis com a nova versão do CMS. Além disso, é muito importante efetuar backup (exportar seus posts, páginas, etc) antes de fazer qualquer atualização, e com essa atualização automática não há como fazer isso. Portanto, eu não recomendo a ninguém que deixe o blog atualizar-se automaticamente. Ah, quem não sabe fazer backups pode aprender nesse artigo: Como fazer backup do blog WordPress

Como desativar Atualização automática do blog WordPress

Por incrível que pareça não há uma opção para desativar as atualizações na página de configurações. Seria tão mais simples se isso fosse possível, como por exemplo uma caixa de opção permitindo ativar e desativar o recurso, não é? Em todo caso, é possível desativar a atualização automática inserindo uma linha de código no arquivo wp-config.php que fica na pasta raiz do seu site. O Código para desativar o update automático é o seguinte: define(‘AUTOMATIC_UPDATER_DISABLED’, true);define( ‘WP_AUTO_UPDATE_CORE’, FALSE );

No caso, o processo é o seguinte:

  • Acesse seu site via ftp e baixe o arquivo wp-config.php para seu computador.
  • Abra o arquivo wp-config.php em seu editor preferido e adicione o código abaixo:

    define('AUTOMATIC_UPDATER_DISABLED', true);
    define( 'WP_AUTO_UPDATE_CORE', FALSE );
    
  • Salve as alterações e reenvie o arquivo para o servidor web remoto, substituindo o arquivo já existente quando solicitado pelo seu cliente FTP.

Por que desativar as atualizações automáticas do blog WordPress

Como eu disse anteriormente, a nova versão do CMS pode não ser compatível com o seu tema ou com algum plugin que você tenha instalado. E isso pode fazer seu site ficar off line. Inclusive isso aconteceu comigo em um de meus sites. Houve uma atualização automática, mas por algum motivo que desconheço ela falhou e apagou o meu banco de dados que possuía as informações do blog. É isso mesmo!, o banco foi excluído pelo processo de auto update. Não é à toa que deve-se fazer backup de seu blog antes de fazer qualquer atualização. A partir desse triste episódio desativei a atualização automatizada em todos os meus blogs e só faço a atualização após ter salvo uma cópia de segurança de meus posts, paginas, etc. Dessa forma, caso um desastre como esses aconteça, poderei rapidamente importar os dados do backup e voltar com o meu site 100%.

Agora, já imaginou se você estiver viajando (sem acesso a internet) e seu blog faz uma auto atualização que falhe e deixe o site fora do ar? Imagine quão grande seria o transtorno até você retornar de viagem e arrumar o estrago. E pior ainda, imagine se você não tiver um backup de seus posts, aí sim é fim do mundo, né? Bom, se uma desgraça dessa acontecer com você, sugiro que leia também esse artigo: Como Recuperar Post Perdido no blog WP

Bom pessoal, fica aqui a dica de como desativar atualizações automáticas do blog WordPress e também o porquê se fazer isso. Até o próximo post aqui no blog Como criar um blog.

WordPress WPLANG tradução parou de funcionar no WordPress 4.0

De fato, a definição define(‘WPLANG’, ‘pt_BR’);, que muitos utilizavam para informar ao CMS a linguagem do blog, foi abandonada. Isso significa que adicionar essa definição no arquivo wp-config.php não mais funcionará como o esperado.

Mas o que ocorreu? E agora como farei para definir a linguagem do meu blog WordPress? Bem, a partir da versão 4.0 foi adicionado um recurso de seleção da linguagens disponíveis lá no painel de controle do WordPress. Isso significa que agora você não precisa programar mais nenhuma linha de código para deixar o CMS informado sobre a linguagem que você quer utilizar em seu blog.

Veja o passo-a-passo:

Como definir linguagem do blog WordPress na versão 4.0

  1. Acesse o painel de controle do seu blog WordPress
  2. Vá até a Seção Configurações (Settings em inglês) e clique na opção Geral
  3. Baixe a barra de rolagem até o final da página e lá você visualizará a opção Idioma do Site. Selecione a linguagem do site e clique no botão Salvar ALterações (Save changes em inglês)

ALternativa 02

Mas não há como informar via código através do wp-config.php qual é a linguagem do site que você quer utilizar? Ao que tudo indica é possível sim, colocando no lugar de define(‘WPLANG’, ‘pt_BR’); o seguinte:

$locale='pt_BR';

Isso seria colocado no arquivo wp-config.php, do mesmo modo que você fazia com o WPLANG.