Me preguntaba si alguien sabía una forma fácil de evitar esto.
El código detrás de mi versión de desarrollo local de una instancia de WordPress y la versión en vivo están sincronizadas (como deberían ser). El problema es que esto significa que el complemento "Jetpack" funciona en la versión en vivo (ya que es un blog en vivo que puede conectarse a WordPress.com) pero no en la versión de desarrollo local.
Esto significa que la funcionalidad está disponible en la versión en vivo (como el widget de barra lateral "Suscribirse") pero no en la versión de desarrollo local, por lo que no están sincronizados.
fuente
Requires Connection
en los archivos de módulos (jetpack/modules/*.php
). De esta forma podemos verificar cuáles funcionarán en modo dev o no.El método en el enlace proporcionado por @TracyRotton parece no funcionar desde Jetpack 2.0 y WordPress 3.4.2.
Incluso replicando todos los campos de la base de datos, no actúa como conectado.
Como la pregunta OP se trata de sincronizar un entorno de desarrollo y uno de producción, tal vez no sea posible.
No he probado en profundidad qué módulos funcionan y cuáles no, pero se puede engañar a Jetpack para que crea que está conectado haciendo la siguiente modificación en el archivo
/plugins/jetpack/jetpack.php
.Dentro de la clase
Jetpack_Data
, modifique la primera funciónget_access_token
como:O simplemente pon un en
return true;
lugar deluser_tokens
que podemos copiar desde dentro de la opciónjetpack_options
.PD: la primera versión de esta respuesta usó otro truco. Aquí, es una modificación de una línea que atrapa a todos, en teoría ...
fuente
force_user_connection()
método enpublicize/publicize-jetpack.php
. Sin embargo, incluso con eso, todavía no parece comportarse exactamente igual que si estuviera realmente conectado. No he profundizado mucho en el código, pero sospecho que hay muchos más lugares en el código que deben ser pirateados para que realmente se ejecute exactamente igual que en un servidor en vivo.Es posible engañar a JetPack copiando los valores del campo de la base de datos de una instalación activada en su instalación local.
En una instalación (remota) con JetPack conectado, busque en la
wp_options
tablaoption_name
campos que comiencenjetpack_
, como:jetpack_activated
jetpack_options
jetpack_nonce_{random_string}
jetpack_active_modules
Copie estos campos y valores en su base de datos de instalaciones locales.
Para obtener más detalles sobre este proceso, consulte: http://www.ravendevelopers.com/node/57
fuente
Inspirado en la última solución de brasofilo, hay una manera aún más fácil, simplemente abra jetpack.php, busque
y reemplazar con esto:
Parece mucho más fácil que jugar con la base de datos y funcionó para mí con la versión Jetpack
2.1.1
y la versión WordPress3.5
Pero debe establecer una regla de ignorar para este archivo o algo así si desea que el complemento funcione bien en el sitio en vivo porque es mejor estar conectado de la manera real que codificar el indicador activo.
fuente
Si desea la funcionalidad completa de Jetpack, su entorno de desarrollo deberá ser de consulta pública. Puede configurar esto haciendo que su dirección de desarrollo sea un subdominio, por ejemplo, sandbox.mysite.com, configurando ese registro DNS para que apunte a la dirección IP donde se encuentra su servidor de desarrollo, y posiblemente configurando su enrutador / firewall para permitir las solicitudes del puerto 80 a través de a su máquina
Otra opción es ejecutar un entorno de ensayo y usarlo para todo lo relacionado con Jetpack. Los entornos de preparación tienen muchas ventajas, por lo que sería una inversión valiosa configurarlo de todos modos.
fuente
El
jetpack_development_mode
filtro:Solo quiero mencionar el
jetpack_development_mode
filtro.Simplemente puede usar:
para ejecutar JetPack localmente.
Un pequeño complemento:
Para evitar tener que modificar el
wp-config.php
archivo con el truco habitual:ahora puede controlarlo a través de este pequeño complemento:
Puedes verlo en GitHub .
fuente
La corrección en http://ravendevelopers.com/node/57 podría NO funcionar con las versiones de Jetpack anteriores a 2.x. Si no funciona en la versión 2.x, intente instalar Jetpack en su sitio en vivo primero como (example.com), conéctelo a wordpress.com y luego importe la configuración de su sitio en vivo a su localhost / ejemplo que debe ser lo mismo (la configuración importada de example.com podría no funcionar con localhost / example2). La cosa es lo que haces en tu sitio en vivo, asegúrate de que la configuración importada sea para el mismo sitio en tu host local.
fuente
Hmm, parece que tu respuesta se puede simplificar. Adopte este cambio y votaré su respuesta.
Como is_active () devuelve verdadero, solo necesita cambiar una línea en admin_page ():
1.
cambiar el valor$is_user_connected
atrue
fuente
is_active
funciones en JetPack, por eso la solución parece redundante, pero no lo es :)