Ich frage mich, ob jemand einen einfachen Weg kennt, um das zu umgehen.
Der Code hinter meiner lokalen Dev-Version einer WordPress-Instanz und die Live-Version sind synchron (wie sie sein sollten). Das Problem ist, dass das "Jetpack" -Plugin an der Live-Version arbeitet (da es sich um ein Live-Blog handelt, das eine Verbindung zu WordPress.com herstellen kann), jedoch nicht an der lokalen Dev-Version.
Dies bedeutet, dass Funktionen in der Live-Version verfügbar sind (wie im Sidebar-Widget "Abonnieren"), jedoch nicht in der lokalen Dev-Version, sodass sie nicht synchron sind.
quelle
Requires Connection
in den Moduldateien (jetpack/modules/*.php
). Auf diese Weise können wir überprüfen, welche im Dev-Modus funktionieren oder nicht.Die Methode in dem von @TracyRotton bereitgestellten Link scheint seit Jetpack 2.0 und WordPress 3.4.2 nicht mehr zu funktionieren.
Selbst wenn alle Datenbankfelder repliziert werden, handelt es sich nicht um eine Verbindung.
Da es sich bei der OP-Frage um die Synchronisierung einer Entwicklungs- und einer Produktionsumgebung handelt, ist dies möglicherweise nicht möglich.
Ich habe nicht ausführlich getestet, welche Module funktionieren und welche nicht, aber Jetpack kann zu der Annahme verleitet werden, dass es verbunden ist, und die folgende Änderung in der Datei vorgenommen
/plugins/jetpack/jetpack.php
.Jetpack_Data
Ändern Sie in der Klasse die allererste Funktionget_access_token
wie folgt:Oder setzen Sie einfach ein
return true;
anstelle des, dasuser_tokens
wir aus der Option heraus kopieren könnenjetpack_options
.PS: Die erste Version dieser Antwort verwendete einen anderen Trick. Hier ist es eine einzeilige Modifikation, die theoretisch alles erfasst ...
quelle
force_user_connection()
Methode in hackenpublicize/publicize-jetpack.php
. Trotzdem scheint es sich nicht genau so zu verhalten, als wäre es tatsächlich verbunden. Ich habe den Code nicht gründlich durchgearbeitet, aber ich habe den Verdacht, dass es noch viel mehr Stellen im Code gibt, die gehackt werden müssen, damit er wirklich genauso ausgeführt wird wie auf einem Live-Server.JetPack kann ausgetrickst werden, indem die Datenbankfeldwerte aus einer aktivierten Installation in Ihre lokale Installation kopiert werden.
Durchsuchen Sie bei einer Installation (remote) mit verbundenem JetPack die
wp_options
Tabelle nachoption_name
Feldern, die mit beginnenjetpack_
, z.jetpack_activated
jetpack_options
jetpack_nonce_{random_string}
jetpack_active_modules
Kopieren Sie diese Felder und Werte in Ihre lokale Installationsdatenbank.
Weitere Informationen zu diesem Vorgang finden Sie unter: http://www.ravendevelopers.com/node/57
quelle
Inspiriert von der neuesten Lösung von brasofilo gibt es noch einen einfacheren Weg, einfach jetpack.php öffnen und suchen
und ersetzen Sie mit diesem:
Scheint viel einfacher zu sein als mit der Datenbank zu spielen und hat bei mir mit der Jetpack-Version
2.1.1
und der WordPress-Version gearbeitet3.5
Sie sollten jedoch eine Ignorierregel für diese Datei oder ähnliches festlegen, wenn das Plugin auf der Live-Site weiterhin einwandfrei funktionieren soll, da es besser ist, auf echte Weise verbunden zu sein, als das aktive Flag fest zu codieren.
quelle
Wenn Sie die volle Jetpack-Funktionalität wünschen , muss Ihre Entwicklungsumgebung öffentlich abfragbar sein. Sie können dies einrichten, indem Sie Ihre Entwickleradresse zu einer Unterdomäne machen, z. B. sandbox.mysite.com, diesen DNS-Eintrag so einstellen, dass er auf die IP-Adresse verweist, unter der sich Ihr Entwicklungsserver befindet, und möglicherweise Ihren Router / Ihre Firewall so konfigurieren, dass Port 80-Anforderungen durchgelassen werden zu Ihrer Maschine.
Eine andere Möglichkeit besteht darin, eine Staging-Umgebung auszuführen und diese für alles zu verwenden, was mit Jetpack zu tun hat. Staging-Umgebungen haben viele Vorteile, daher wäre es eine lohnende Investition, sie trotzdem einzurichten.
quelle
Der
jetpack_development_mode
Filter:Ich möchte nur den
jetpack_development_mode
Filter erwähnen .Sie können einfach verwenden:
laufen JetPack vor Ort.
Ein kleines Plugin:
So vermeiden Sie, dass Sie die
wp-config.php
Datei mit dem üblichen Trick ändern müssen :Sie können es jetzt über dieses kleine Plugin steuern:
Sie können es auf GitHub ausprobieren .
quelle
Das Update unter http://ravendevelopers.com/node/57 funktioniert möglicherweise nicht mit Jetpack-Versionen über 2.x. Wenn es mit Version 2.x nicht funktioniert, versuchen Sie zunächst, Jetpack auf Ihrer Live-Site wie (example.com) zu installieren, verbinden Sie es mit wordpress.com und importieren Sie dann die Einstellungen von Ihrer Live-Site auf Ihren localhost / example, der sein muss das gleiche (Einstellungen, die von example.com importiert wurden, funktionieren möglicherweise nicht mit localhost / example2). Stellen Sie sicher, dass die importierten Einstellungen für dieselbe Site auf Ihrem lokalen Host gelten.
quelle
Hmm, scheint, als könnte deine Antwort vereinfacht werden. Nehmen Sie diese Änderung an und ich stimme Ihrer Antwort zu.
Da is_active () true zurückgibt, müssen Sie nur eine Zeile in admin_page () ändern:
1.
Ändern Sie den Wert$is_user_connected
intrue
quelle
is_active
Funktionen in JetPack, deshalb scheint die Lösung überflüssig, aber es ist nicht :)