जेटपैक स्थानीय रूप से चल रहा है [बंद]


16

अगर किसी को इसके आस-पास कोई आसान तरीका पता हो तो आश्चर्य होगा।

वर्डप्रेस उदाहरण के मेरे स्थानीय देव संस्करण के पीछे कोड और लाइव संस्करण सिंक में हैं (जैसा कि उन्हें होना चाहिए)। समस्या यह है कि "जेटपैक" प्लगइन लाइव संस्करण पर काम कर रहा है (क्योंकि यह एक लाइव ब्लॉग है जो वर्डप्रेस.कॉम से जुड़ सकता है) लेकिन स्थानीय देव संस्करण पर नहीं।

इसका मतलब है कि कार्यक्षमता लाइव संस्करण पर उपलब्ध है (जैसे "सदस्यता लें" साइडबार विजेट) लेकिन स्थानीय देव संस्करण पर नहीं, इस प्रकार वे सिंक से बाहर हो जाते हैं।

जवाबों:


24

JetPack 2.2.1 के रूप में अब एक स्थानीय विकास / डिबग मोड है। http://jetpack.me/2013/03/28/jetpack-dev-mode-release/

उपयोग:

define ('JETPACK_DEV_DEBUG', true);

आपके wp-config में और आपके पास ऐसे किसी भी मॉड्यूल का उपयोग होना चाहिए जिसे कार्य करने के लिए कनेक्शन की आवश्यकता नहीं है।

अद्यतन करें, क्योंकि v3.3 के आसपास एक और स्थानीय विकास ट्रिगर को परिभाषित करने के बजाय फ़िल्टर के माध्यम से जोड़ा गया था।

नवीनतम अब यहाँ है: http://jetpack.me/support/development-mode/

यदि आपकी साइट के होस्टनाम, यानी लोकलहोस्ट में पीरियड नहीं है तो डेवलपमेंट मोड अपने आप सक्षम हो जाता है। यदि आप एक अलग URL का उपयोग करते हैं, जैसे कि mycooltestsite.local या कुछ और, तो आपको JETPACK_DEV_DEBUG निरंतर परिभाषित करने की आवश्यकता होगी।

आप जेटपैक के विकास मोड को प्लगइन के माध्यम से भी सक्षम कर सकते हैं, जेटपैक_विकास_मॉड फिल्टर के लिए धन्यवाद:

add_filter( 'jetpack_development_mode', '__return_true' );

Jetpack v3.9 के रूप में अब एक स्टेजिंग मोड फ़िल्टर भी है जो किसी साइट को उत्पादन के बजाय एक स्टेजिंग साइट के रूप में पुनर्गठित करने के लिए मजबूर करता है: https://developer.jetpack.com/hooks/jetpack_is_staging_site/

add_filter( 'jetpack_is_staging_site', '__return_true' );

2
देव / डीबग मोड Requires Connectionमॉड्यूल फ़ाइलों में हेडर के लिए दिखता है ( jetpack/modules/*.php)। इस तरह हम जांच सकते हैं कि कौन से देव मोड में काम करेंगे या नहीं।
ब्रासोफिलो

स्थानीय मोड पर विकास मोड सक्षम होने पर क्या सुविधाएँ काम करती हैं, इसकी एक सूची: wpperform.com/jetpack-development-mode
Casey Plummer

9

JetT 2.0 और वर्डप्रेस 3.4.2 के बाद से @TocracyRotton द्वारा दिए गए लिंक में विधि काम नहीं कर रही है।

यहां तक ​​कि सभी डेटाबेस फ़ील्ड की नकल करते हुए, यह कनेक्टेड के रूप में कार्य नहीं करता है।
जेटपैक डेटाबेस


जैसा कि ओपी प्रश्न एक विकास और उत्पादन वातावरण को समन्वयित करने के बारे में है, शायद यह संभव नहीं है।

मैंने इन-डेप्थ का परीक्षण नहीं किया है कि कौन से मॉड्यूल काम करते हैं और कौन से नहीं, लेकिन जेटपैक को यह मानते हुए धोखा दिया जा सकता है कि यह फ़ाइल में निम्न संशोधन करता है /plugins/jetpack/jetpack.php

कक्षा के अंदर Jetpack_Data, पहले फ़ंक्शन को संशोधित करें get_access_tokenजैसे:

class Jetpack_Data {    
    function get_access_token( $user_id = false ) {
        return 'USER_TOKENS-VALUE-FOUND-INSIDE-THE-OPTION-JETPACK_OPTIONS'; // <---trick
        if ( $user_id ) {
            if ( !$tokens = Jetpack::get_option( 'user_tokens' ) ) {
                return false;
            }

या बस return true;इसके बजाय user_tokensकि हम विकल्प के अंदर से कॉपी कर सकते हैं डाल दिया jetpack_options

पुनश्च: इस उत्तर के पहले संस्करण में एक और ट्रिक का उपयोग किया गया था। यहां, यह एक-पंक्ति संशोधन है जो सभी को पकड़ता है, सिद्धांत रूप में ...


आपको अलग-अलग मॉड्यूल को हैक करने की आवश्यकता हो सकती है, जैसे कि force_user_connection()विधि publicize/publicize-jetpack.php। हालांकि, इसके साथ भी, यह अभी भी वैसा ही व्यवहार नहीं करता जैसा कि वास्तव में जुड़ा हुआ है। मैंने बड़े पैमाने पर कोड के माध्यम से नहीं खोदा है, लेकिन मेरा संदेह यह है कि कोड में कई और स्थान हैं जिन्हें हैक करने की आवश्यकता है ताकि वास्तव में इसे उसी तरह निष्पादित किया जा सके जैसा कि एक लाइव सर्वर पर होता है।
इयान डन

1
@IanDunn, सहमत हैं, मेरा जवाब "जुड़ा होने के बारे में मुझे परेशान न करें और मुझे कुछ हुक का परीक्षण करने दें" और सिंक में देव और तैनात संस्करणों के ओपी मुद्दे को वास्तव में लक्षित नहीं करता है।
ब्रासोफिलो

@IanDunn, एक और तरीका पाया, शायद अधिक प्रभावी। जवाब अपडेट करें, आपको क्या लगता है?
ब्रासोफिलो

मैंने कल भी ऐसा ही कुछ करने की कोशिश की थी, लेकिन फिर भी मैं अपने मंचन सर्वर पर जो समस्या देख रहा था, उसे पुन: पेश नहीं कर सका, इसलिए मुझे यकीन नहीं है कि यह पूरी तरह से काम करता है या नहीं। समस्या एक अलग प्लगइन में बग के रूप में बदल गई और यह अब ठीक हो गई है, इसलिए मुझे अब Jetpack हैक करने की आवश्यकता नहीं है।
इयान दून

7

अपने स्थानीय इंस्टॉल में सक्रिय इंस्टॉल से डेटाबेस फ़ील्ड मानों की प्रतिलिपि बनाकर जेटपैक को ट्रिक करना संभव है।

JetPack से जुड़े एक इंस्टॉलेशन (रिमोट) पर , आरंभ करने वाले क्षेत्रों के wp_optionsलिए तालिका खोजें जैसे कि:option_namejetpack_

  • jetpack_activated
  • jetpack_options
  • jetpack_nonce_{random_string}
  • jetpack_active_modules

अपने स्थानीय इंस्टॉल डेटाबेस में इन क्षेत्रों और मूल्यों को कॉपी करें।

इस प्रक्रिया पर अधिक विवरण के लिए देखें: http://www.ravendevelopers.com/node/57


लिंक के लिए धन्यवाद। मुझे MySQL त्रुटि "# 1062 - कुंजी 'विकल्प_नाम' के लिए डुप्लिकेट प्रविष्टि 'जेटपैक_एक्टीवेटेड"
मिलती है

4

ब्रासोफिलो के नवीनतम समाधान से प्रेरित, वहाँ भी एक आसान तरीका है, बस जेटपैक खोलें

/**
* Is Jetpack active?
*/
public static function is_active() {
    return (bool) Jetpack_Data::get_access_token( JETPACK_MASTER_USER );
}

और इसके साथ बदलें:

/**
* Is Jetpack active?
*/
public static function is_active() {
    return true;
}

डेटाबेस के साथ खेलने की तुलना में बहुत आसान लगता है और जेटपैक संस्करण 2.1.1और वर्डप्रेस संस्करण के साथ मेरे लिए काम किया है 3.5

लेकिन आपको इस फ़ाइल के लिए एक अनदेखा नियम या ऐसा कुछ सेट करना चाहिए, यदि आप प्लगइन को लाइव साइट पर ठीक रखना चाहते हैं क्योंकि यह सक्रिय ध्वज को हार्डकोड करने की तुलना में वास्तविक तरीके से जुड़ा होना बेहतर है।


3

यदि आप पूर्ण Jetpack कार्यक्षमता चाहते हैं , तो आपके विकास के वातावरण को सार्वजनिक रूप से क्वेरी करने की आवश्यकता होगी। आप अपने देव पते को उपडोमेन बना सकते हैं, जैसे sandbox.mysite.com, उस DNS रिकॉर्ड को IP पते पर इंगित करने के लिए सेट करना, जहां आपका विकास सर्वर स्थित है, और संभवतः पोर्ट 80 अनुरोधों को अनुमति देने के लिए आपके राउटर / फ़ायरवॉल को कॉन्फ़िगर कर रहा है। अपनी मशीन के लिए।

एक अन्य विकल्प स्टेजिंग वातावरण को चलाने के लिए है, और इसका उपयोग जेटपैक से संबंधित किसी भी चीज़ के लिए किया जाता है। मंचन के वातावरण के कई फायदे हैं, इसलिए यह वैसे भी स्थापित करने के लिए एक सार्थक निवेश होगा।


2

jetpack_development_modeफिल्टर:

मैं सिर्फ jetpack_development_modeफिल्टर का उल्लेख करना चाहता हूं ।

आप बस उपयोग कर सकते हैं:

add_filter( 'jetpack_development_mode', '__return_true' );

स्थानीय रूप से JetPack चलाने के लिए ।

एक छोटा प्लगइन:

wp-config.phpसामान्य चाल के साथ फ़ाइल को संशोधित करने से बचने के लिए :

define ('JETPACK_DEV_DEBUG', true);

अब आप इसे इस छोटे प्लगइन के माध्यम से नियंत्रित कर सकते हैं:

<?php
/**
 * Plugin Name: Run JetPack locally
 * Plugin URI:  http://wordpress.stackexchange.com/a/144317/26350
 * Version:     0.0.1
 */
add_filter( 'jetpack_development_mode', '__return_true' );

आप इसे GitHub पर देख सकते हैं ।


-1

Http://ravendevelopers.com/node/57 पर फिक्स 2.x के ऊपर Jetpack संस्करणों के साथ काम नहीं करता है। यदि यह संस्करण २.२ पर काम नहीं करता है तो अपनी लाइव साइट पर Jetpack को पहले स्थापित करने का प्रयास करें (जैसे example.com), इसे wordpress.com से कनेक्ट करें और फिर अपनी लाइव साइट से सेटिंग को अपने स्थानीयहोस्ट / उदाहरण में आयात करें जो कि होना चाहिए समान (उदाहरण.कॉम से आयात की गई सेटिंग स्थानीयहोस्ट / example2 के साथ काम नहीं कर सकती)। बात यह है कि आप अपनी लाइव साइट पर क्या करते हैं, सुनिश्चित करें कि आपके स्थानीयहोस्ट पर उसी साइट के लिए आयातित सेटिंग्स हैं।


-2

हम्म, ऐसा लगता है कि आपके उत्तर को सरल बनाया जा सकता है। इस परिवर्तन को अपनाएँ और मैं आपके उत्तर पर मतदान करूँगा।

चूंकि is_active () सही है, आपको केवल admin_page () में एक पंक्ति बदलने की आवश्यकता है:

1.$is_user_connectedकरने के लिए मूल्य बदलेंtrue

function admin_page() {
    global $current_user;

    $role = $this->translate_current_user_to_role();
    $is_connected = Jetpack::is_active();
    $user_token = Jetpack_Data::get_access_token($current_user->ID);
    $is_user_connected = true;//$user_token && !is_wp_error($user_token);
    // ...function continues

हाय मैट, मैं समझता हूं कि यह मेरे जवाब के लिए एक टिप्पणी है। is_activeJetPack में 2 कार्य हैं , इसीलिए यह समाधान बेमानी लगता है, लेकिन यह :) नहीं है
brasofilo

हम्म, मैं देख लूंगा। मुझे लगा कि मुझे केवल एक is_active तरीका मिला है जो Jetpack वर्ग में था, लेकिन फिर से जांच करेगा।
मैट सीनेट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.