আমার এজেএক্স চালিত ওয়ার্ডপ্রেসকে ক্রলযোগ্য করে তোলা


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 এবং এখন গুগলবোট আমার এজেএক্স চালিত পৃষ্ঠাগুলির সামগ্রী দেখতে পারে। আমি ভেবেছিলাম সব শেষ হয়ে গেছে।

কিন্তু আমি যখন ফেসবুকে (বড়) একটি পোস্ট লিঙ্ক আটকে দিন এটা পাতার বিষয়বস্তু পড়তে অক্ষম তাই আমি অনুমান করেছিলাম যে আমার ওয়েবসাইট সত্যিই স্কিম ফেসবুক যেহেতু গুগল ডকুমেন্টেশন বর্ণিত এটা সমর্থন করা হয় (আপনি পেস্ট তাহলে সম্মান করা হয় না HTTP : //twitter.com/#! / গ্যাবলবে এটি কাজ করবে)। সুতরাং যেহেতু আমি আমার হ্যাশবাং (#!) পেতে jQuery.address প্লাগইনটি ব্যবহার করছি আমি তাদের ওয়েবসাইটে গিয়ে তাদের ফাইল এবং আমার মধ্যে পার্থক্য কী তা দেখতে তাদের নমুনা ফাইলগুলি ডাউনলোড করেছিলাম এবং বুঝতে পেরেছিলাম যে তারা সম্ভবত একটি পিএইচপি ফাংশন ব্যবহার করছে প্রয়োজনীয় এইচটিএমএল স্ন্যাপশট তৈরি করতে: https://github.com/bartaz/jquery-address/blob/master/sample/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');
    }

?>

সুতরাং আমার অনুমান যে আমি সম্ভবত ওয়ার্ডপ্রেস হ্যাক ব্যবহারের পরিবর্তে এইচটিএমএল স্ন্যাপশট পরিবেশন করতে অনুরূপ পিএইচপি ফাংশনটি ব্যবহার করতে পারি তবে আমার এটি ওয়ার্ডপ্রেসে মানিয়ে নিতে হবে। সমস্যাটি হ'ল আমি কোনও প্রোগ্রামার নই এবং আমি এ পর্যন্ত সেরা চেষ্টা করেছি।

আমার পোস্টটি এই ফর্ম্যাটে রয়েছে: http://visualise.ca/#!/anne-au-cherry এবং স্ট্যাটিক সংস্করণটি http://visualise.ca/anne-au-cherry এ উপলব্ধ (যেখানে অ্যানি-আউ-চেরি আমরা পোস্ট করা পৃষ্ঠার উপর নির্ভর করে পোস্টের স্লাগ এবং পরিবর্তনগুলি হয়)।

সুতরাং আমার প্রশ্নটি কি কেউ নিশ্চিত করতে পারে যে আমি সঠিক পথে আছি এবং যদি সম্ভব হয় তবে এই পিএইচপি ফাংশনটি তৈরি করতে সহায়তা করতে পারে?

আপনার সময় এবং সাহায্যের জন্য অনেক ধন্যবাদ!


5
আপনি কি সাইটম্যাপ তৈরির কথা ভেবেছেন? উদাহরণস্বরূপ, ইয়োস্ট ওয়ার্ডপ্রেস এসইও স্বয়ংক্রিয়ভাবে আপনার সামগ্রীর জন্য একটি সাইটম্যাপ তৈরি করে এবং এটি বিং, গুগল এবং ইয়াহুতে জমা দেয় ...

সাইটম্যাপ আইডিয়ায় +1। গুগলকে সাইটটি দেখানোর জন্য যে ইউআরএল পরম পাস হচ্ছে তা নিয়ে এখনও আমি বিভ্রান্ত। আপনি কি ইউআরএল পেস্ট করতে পারবেন যা ক) পৃষ্ঠার সামগ্রী এবং খ) জাভাস্ক্রিপ্ট ছাড়াই চালানো যায়? যদি তা না থাকে তবে গুগল বা ফেসবুকের ক্রল করার মতো কিছুই নেই।
ব্র্যান্ডওয়ফল

উত্তর:


4

বিশেষ করে এড়িয়ে চলুন অর্ডার AJAX এর চালিত ওয়ার্ডপ্রেস সাইট crawlable করার জন্য "hashbang" ( "! #") ব্যবহার করে।

আপনি সত্যিই কোনও ওয়ার্ডপ্রেস সাইটে "হ্যাশবাং" পদ্ধতিটি ব্যবহার করতে চান না।

"! #" আরও সাইটের যে জন্য একটি হল hacky প্যাচ মত হল না পারেন, এটা যাক AJAX সংস্করণে একটি স্ট্যাটিক এনালগ প্রদান। বিকল্প হিসাবে যদি না পাওয়া যায় তবে সাধারণভাবে এর ব্যবহার গুগল দ্বারা সুপারিশ করা হয় না।

নেই কোন লাভ ওয়ার্ডপ্রেস একটি hashbang সিস্টেম বাস্তবায়ন করতে। ওয়ার্ডপ্রেসের জন্য ফ্রন্ট-এন্ড এজেএক্স সলিউশনটি বিদ্যমান ইউআরএল স্কিমের (কোনও হ্যাশ, কোনও ঠুং ঠুং শব্দ) প্রায়শই কাজ করা উচিত।

সংক্ষিপ্তসার: ওয়ার্ডপ্রেস প্রাকৃতিকভাবে ক্রলযোগ্য; কেবল হ্যাশ-ব্যাঙ্গ ব্যবহার করে এটি ভাঙ্গবেন না।


1

আপনি যদি বিশেষত ফেসবুকের উল্লেখ করছেন যে আপনার পৃষ্ঠার জন্য মেটা তথ্যটি সঠিকভাবে না দেখায়, তবে আপনার ওয়ার্ডপ্রেসের জন্য ওপেনগ্রাফ প্লাগইনটি দেখে নেওয়া উচিত, কারণ এটি যথাযথ ওগ: বৈশিষ্ট্য মেটাডেটা যুক্ত করবে। http://wordpress.org/extend/plugins/opengraph/

এছাড়াও, আপনি শিরোনামে এর মতো একটি লিঙ্ক যুক্ত করতে পারেন

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

এবং দেখুন যে এটি কিছু করে।

যদিও আমাকে জিজ্ঞাসা করতে হবে, আপনি কেন এটি করছেন? টুইটারটি এই ইউআরএল কাঠামোর জন্য নিখুঁতভাবে আগুনের মধ্যে পড়েছে কারণ এটি ক্রল করতে ব্যথা। আপনার এটি করা উচিত নয় বলছেন না, তবে কারণটি কী তা নিয়ে বেশ কৌতূহলী :)


1

আমি যা করেছি তা হ'ল হ্যাশব্যাংগুলি ব্যবহার করা উচিত নয় যেমন রাইথকেনি পরামর্শ দিয়েছিল।

HTML5 স্টেট ম্যানেজমেন্টে ব্যবহৃত ওয়েবসাইটের বেস পাথ এবং set .ddress.value (মান) পদ্ধতিটি বর্তমান সেট করার জন্য set .address.state (মান) পদ্ধতির সাথে jQuery ঠিকানার প্লাগইন ব্যবহার করে Using গভীর সংযোগের মানটি আমি যা করতে চাই তা করতে সক্ষম হয়েছি।

http://visualise.ca/

পোস্টগুলি (কোনও চিত্রের থাম্বনেইলে ক্লিক করুন) এজেএক্সের মাধ্যমে লোড করা হয় এবং একই সাথে ইউআরএল পরিবর্তিত হয়, পোস্টগুলি তাদের নিজস্বভাবে উপস্থিত রয়েছে, অবশ্যই একই পারমালিঙ্ক কাঠামো যাতে এটি সম্পূর্ণ ক্রলযোগ্য হয়।

পুরানো ব্রাউজারগুলির মধ্যে একমাত্র সমস্যাটি হবে বলে আমি মনে করি (যাচাই করা দরকার), এখনও হ্যাশব্যাঙ্গগুলি দেখতে পাবে।

যেহেতু আমি বিকাশকারী নই এটি বুঝতে আমার অনেক বেশি সময় লেগেছে। : - / তবে আমি এখন ফলাফলগুলি নিয়ে বেশ খুশি ;-)

jQuery ঠিকানা: http://www.asual.com/jquery/address/


1
JQuery pjax প্লাগইন একবার দেখুন। github.com/defunkt/jquery-pjax এটা খুবই অনুরূপ কিন্তু বিষয়বস্তু, ইত্যাদি এখানে আপনার জন্য লোড যত্ন নিতে হবে কি আমি একটি কুড়ি ইলেভেন শিশু থিমের জন্য এটি সঙ্গে করেছিল একটি উদাহরণ github.com/chrisguitarguy/pjaxy
chrisguitarguy
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.