Gostaria de saber se alguém sabia uma maneira fácil de contornar isso.
O código por trás da minha versão de desenvolvedor local de uma instância do WordPress e da versão ao vivo está sincronizado (como deveria ser). O problema é que isso significa que o plug-in "Jetpack" está funcionando na versão ao vivo (já que é um blog ao vivo que pode se conectar ao WordPress.com), mas não na versão local do desenvolvedor.
Isso significa que a funcionalidade está disponível na versão ao vivo (como o widget da barra lateral "Inscrever-se"), mas não na versão local do desenvolvedor, portanto, eles estão fora de sincronia.
fonte
Requires Connection
nos arquivos dos módulos (jetpack/modules/*.php
). Dessa forma, podemos verificar quais funcionarão no modo dev ou não.O método no link fornecido pelo @TracyRotton parece não estar funcionando desde o Jetpack 2.0 e o WordPress 3.4.2.
Mesmo replicando todos os campos do banco de dados, ele não age como conectado.
Como a pergunta do OP é sobre a sincronização de ambientes de desenvolvimento e produção, talvez não seja possível.
Não testei detalhadamente quais módulos funcionam e quais não, mas o Jetpack pode ser induzido a acreditar que ele está conectado, fazendo a seguinte modificação no arquivo
/plugins/jetpack/jetpack.php
.Dentro da classe
Jetpack_Data
, modifique a primeira funçãoget_access_token
como:Ou simplesmente coloque um em
return true;
vez douser_tokens
que podemos copiar de dentro da opçãojetpack_options
.PS: a primeira versão desta resposta usou outro truque. Aqui, é uma modificação de uma linha que captura tudo, em teoria ...
fonte
force_user_connection()
métodopublicize/publicize-jetpack.php
. Mesmo assim, ele ainda não parece se comportar exatamente como se estivesse realmente conectado. Eu não procurei o código extensivamente, mas minha suspeita é que existem muitos outros lugares no código que precisam ser invadidos para realmente fazer com que ele seja executado exatamente da mesma maneira que faria em um servidor ativo.É possível enganar o JetPack, copiando os valores do campo do banco de dados de uma instalação ativada para a instalação local.
Em uma instalação (remota) com o JetPack conectado, procure na
wp_options
tabela osoption_name
campos que começam comjetpack_
, como:jetpack_activated
jetpack_options
jetpack_nonce_{random_string}
jetpack_active_modules
Copie esses campos e valores no banco de dados de instalações locais.
Para mais detalhes sobre esse processo, consulte: http://www.ravendevelopers.com/node/57
fonte
Inspirado na solução mais recente da brasofilo, existe ainda uma maneira mais fácil: basta abrir o jetpack.php, procurar
e substitua por isso:
Parece ser muito mais fácil do que brincar com o banco de dados e funcionou para mim com a versão Jetpack
2.1.1
e a versão WordPress3.5
Mas você deve definir uma regra para ignorar esse arquivo ou algo assim, se quiser manter o plug-in funcionando bem no site ativo, porque é melhor estar conectado de maneira real do que codificar o sinalizador ativo.
fonte
Se você quiser a funcionalidade completa do Jetpack, seu ambiente de desenvolvimento precisará ser consultado publicamente. Você pode configurar isso transformando seu endereço de desenvolvedor em um subdomínio, por exemplo, sandbox.mysite.com, configurando esse registro DNS para apontar para o endereço IP em que seu servidor de desenvolvimento está localizado e, possivelmente, configurando seu roteador / firewall para permitir solicitações de porta 80 através de à sua máquina.
Outra opção é executar um ambiente de teste e usá-lo para qualquer coisa relacionada ao Jetpack. Os ambientes de armazenamento temporário têm muitas vantagens, portanto, seria um investimento interessante configurá-lo de qualquer maneira.
fonte
O
jetpack_development_mode
filtro:Eu só quero mencionar o
jetpack_development_mode
filtro.Você pode simplesmente usar:
para executar o JetPack localmente.
Um pequeno plugin:
Para evitar ter que modificar o
wp-config.php
arquivo com o truque usual:agora você pode controlá-lo através deste pequeno plugin:
Você pode conferir no GitHub .
fonte
A correção em http://ravendevelopers.com/node/57 PODE não funcionar com versões do Jetpack acima de 2.x. Se não funcionar na versão 2.x, tente instalar o Jetpack em seu site ao vivo primeiro (exemplo.com), conecte-o ao wordpress.com e importe as configurações do site ao vivo para o host / exemplo local, que deve ser o mesmo (as configurações importadas de example.com podem não funcionar com localhost / example2). O que você faz no seu site ativo, verifique se as configurações importadas são para o mesmo site no host local.
fonte
Hmm, parece que sua resposta pode ser simplificada. Adote essa alteração e eu votarei na sua resposta.
Como is_active () retorna true, você só precisa alterar uma linha em admin_page ():
1.
altere o valor$is_user_connected
paratrue
fonte
is_active
funções no JetPack, é por isso que a solução parece redundante, mas não é :)