मेरा AJAX संचालित वर्डप्रेस क्रॉलबल बनाना


9

मैं निम्नलिखित को पढ़ता हूं और इस योजना को अपनी वेबसाइट पर लागू करने का प्रयास करता हूं वर्डप्रेस: http://code.google.com/intl/fr-CA/web/ajaxcrawling/index.html

यदि आप http://www.visualise.ca/ पर मेरी वेबसाइट पर जाते हैं, तो आप देखेंगे कि यह होम पेज के भीतर पोस्ट लोड करता है और url http://visualise.ca/#//anne-au-cherry हो जाता है जब पोस्ट भरी हुई है। उसी सामग्री का एक स्थिर संस्करण क्रॉलर के लिए http://visualise.ca/anne-au-cherry पर उपलब्ध है, लेकिन यदि कोई विज़िटर किसी ब्राउज़र का उपयोग करता है, तो वह http://visualise.ca/# पर रीडायरेक्ट हो जाएगा ! / एनी-ए-चेरी (यह जावास्क्रिप्ट के साथ किया जाता है)।

क्रॉलर को आवश्यक प्रदान करने के लिए ?_escaped_fragment_=मैंने नेट पर मिली एक वर्डप्रेस हैक का उपयोग किया है: http://www.wordpress-fr.net/support/sujet-54810-add-action-parse-request और अब GoogleBot मेरे AJAX द्वारा संचालित पृष्ठों की सामग्री देख सकता है। मुझे लगा कि यह सब हो गया।

लेकिन जब मैं फेसबुक (यानी) के लिए एक पोस्ट लिंक पेस्ट करता हूं, तो यह पेज की सामग्री को पढ़ने में असमर्थ है, इसलिए मैंने अनुमान लगाया कि मेरी वेबसाइट Google प्रलेखन में वर्णित योजना का वास्तव में सम्मान नहीं कर रही है क्योंकि फेसबुक इसका समर्थन कर रहा है (यदि आप http पेस्ट करते हैं : //twitter.com/#! / gablabelle यह काम करेगा)। इसलिए जब से मैं अपने हैशबैंग (#!) प्राप्त करने के लिए jQuery.address प्लगइन का उपयोग कर रहा हूं (#!) मैं उनकी वेबसाइट पर गया और उनकी नमूना फ़ाइलों को डाउनलोड किया और यह देखने के लिए कि उनकी फ़ाइलों और खानों में क्या अंतर हैं और उन्हें एहसास हुआ कि वे शायद php फ़ंक्शन का उपयोग कर रहे थे। आवश्यक HTML स्नैपशॉट बनाने के लिए: https://github.com/bartaz/jquery-address/blob/master/samples/crawling/index.php क्योंकि यही कारण है, मुझे लगता है, फेसबुक मेरा नहीं पढ़ सकता।

<?php

    error_reporting(E_ALL ^ (E_NOTICE | E_WARNING));

    $fragment = $_REQUEST['_escaped_fragment_'];
    $file = 'data/' . (isset($fragment) && $fragment != '' && $fragment != '/' ? preg_replace('/\//', '', $fragment) : 'home') . '.xml';
    $re = '/(^<[^>]*>)|(\n|\r\n|\t|\s{2,4})*/';

    $handle = fopen($file, 'r');
    if ($handle != false) {
        $content = preg_replace($re, '', fread($handle, filesize($file)));
        fclose($handle);
    } else {
     $content = 'Page not found!';
        header(php_sapi_name() == 'cgi' ? 'Status: 404' : 'HTTP/1.1 404');
    }

?>

तो मेरा अनुमान है कि मैं शायद वर्डप्रेस हैक का उपयोग करने के बजाय HTML स्नैपशॉट को सेव करने के लिए एक समान php फ़ंक्शन का उपयोग कर सकता हूं, लेकिन मुझे इसे वर्डप्रेस में अनुकूलित करने की आवश्यकता होगी। समस्या यह है कि मैं कोई प्रोग्रामर नहीं हूं और मैंने अब तक अपना सर्वश्रेष्ठ प्रदर्शन किया है।

मेरी पोस्ट इस प्रारूप में है: http://visualise.ca/# !/ anne-au-cherry और स्थिर संस्करण http://visualise.ca/anne-au-cherry (जहां एने-औ-चेरी पर उपलब्ध है पोस्ट का स्लग है और जो पृष्ठ हम देख रहे हैं, उसके आधार पर परिवर्तन)।

तो मेरा प्रश्न क्या कोई पुष्टि कर सकता है कि मैं सही रास्ते पर हूँ और यदि संभव हो तो उस php फंक्शन को बनाने में मदद भी कर सकता हूँ?

आपके समय और मदद के लिए बहुत धन्यवाद!


5
क्या आपने साइटमैप बनाने के बारे में सोचा है? उदाहरण के लिए, Yoast WordPress SEO स्वचालित रूप से आपकी सामग्री के लिए एक साइटमैप बनाता है और इसे Bing, Google और Yahoo ...

साइटमैप विचार के लिए +1। हालाँकि, Google को साइट दिखाने के लिए मैं अभी भी url param के रूप में उलझन में हूँ। क्या आप एक url पेस्ट कर सकते हैं जिसमें एक) पृष्ठ सामग्री और b) जावास्क्रिप्ट के बिना चलता है? यदि वह मौजूद नहीं है, तो क्रॉल करने के लिए Google या Facebook के लिए कुछ भी नहीं है।
ब्रांडवफ़ल

जवाबों:


4

विशेष रूप से बचें आदेश AJAX संचालित वर्डप्रेस साइटों क्रॉल करने योग्य बनाने के लिए "hashbang" ( "! #") का उपयोग।

आप वास्तव में एक वर्डप्रेस साइट पर "हैशबैंग" विधि का उपयोग नहीं करना चाहते हैं।

"#!" उन साइटों के लिए हैकी पैच की तरह है जो कि AJAX संस्करण को एक स्थिर एनालॉग प्रदान नहीं कर सकते हैं । सामान्य रूप से इसका उपयोग Google द्वारा अनुशंसित नहीं है जब तक कि कोई विकल्प उपलब्ध न हो।

वर्डप्रेस में हैशबैंग सिस्टम को लागू करने का कोई लाभ नहीं है । वर्डप्रेस के लिए एक फ्रंट-एंड AJAX समाधान मौजूदा url स्कीम (कोई हैश, नो बैंग) के आसपास काम करना चाहिए।

सारांश: वर्डप्रेस स्वाभाविक रूप से क्रॉल करने योग्य है; बस हैश बैंग्स का उपयोग कर इसे तोड़ नहीं है।


1

यदि आप विशेष रूप से फेसबुक पर अपने पेज के लिए मेटा जानकारी को ठीक से नहीं दिखाने की बात कर रहे हैं, तो आपको वर्डप्रेस के लिए ओपनग्राफ प्लगइन देखना चाहिए, क्योंकि यह उपयुक्त ओग: विशेषता मेटाडेटा को जोड़ देगा। http://wordpress.org/extend/plugins/opengraph/

इसके अलावा, आप हेडर में इस तरह एक लिंक जोड़ सकते हैं

<link rel="canonical" href="link_back_to_real_post_url">

और देखें कि क्या कुछ भी करता है।

मुझे हालांकि यह पूछना है कि आप ऐसा क्यों कर रहे हैं? ट्विटर इस URL संरचना के लिए ठीक आग के कारण आया है क्योंकि यह क्रॉल करने के लिए एक दर्द है। यह नहीं कह रहा है कि आपको यह नहीं करना चाहिए, लेकिन इसका कारण क्या है:


1

वास्तव में मैंने क्या किया है जैसे कि WraithKenny ने हैशबैंग का उपयोग नहीं किया है।

HTML5 राज्य प्रबंधन और $ .address.value (मूल्य) पद्धति में उपयोग की जाने वाली वेबसाइट के आधार पथ को सेट करने के लिए $ .address.state (मान) विधि के साथ jQuery पते प्लगइन का उपयोग करके वर्तमान सेट करने के लिए। गहरा लिंकिंग मूल्य मैं वह करने में सक्षम था जो मैं चाहता था।

http://visualise.ca/

एक ही समय में AJAX और URL परिवर्तनों के माध्यम से पोस्ट (एक छवि थंबनेल पर क्लिक करें) लोड किए जाते हैं, पोस्ट अपने स्वयं के उपयोग पर मौजूद हैं, ज़ाहिर है, एक ही पर्मलिंक संरचना इसलिए यह पूरी तरह से क्रॉल करने योग्य है।

एकमात्र समस्या पुराने ब्राउज़रों के लिए होगी, जो मुझे लगता है (सत्यापित किए जाने की आवश्यकता है), फिर भी हैशबैंग देखें।

चूंकि मैं एक विकासशील नहीं हूं, इसलिए मुझे समझने में ज्यादा समय लगा। : - / लेकिन मैं अब परिणामों के साथ काफी खुश हूँ ;-)

jQuery का पता: http://www.asual.com/jquery/address/


1
JQuery pjax प्लगइन पर एक नज़र डालें। github.com/defunkt/jquery-pjax यह बहुत समान है, लेकिन आपके लिए सामग्री लोड करने का ध्यान रखेगा, आदि। यहाँ मैंने एक ट्वेंटी इलेवन चाइल्ड थीम के लिए इसके साथ क्या किया इसका एक उदाहरण है github.com/chrisguitaryy/pjaxy
chrisguitarguy
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.