Membuat WordPress merangkak AJAX saya didukung


9

Saya membaca yang berikut dan mencoba menerapkan skema ini ke situs web saya yang menjalankan WordPress: http://code.google.com/intl/fr-CA/web/ajaxcrawling/index.html

Jika Anda mengunjungi situs web saya di http://www.visualise.ca/ Anda akan melihat bahwa ia memuat posting di halaman beranda dan url menjadi http://visualise.ca/#!/anne-au-cherry saat ini pos dimuat. Versi statis dari konten yang sama tersedia untuk crawler di http://visualise.ca/anne-au-cherry tetapi jika pengunjung yang menggunakan browser mengunjunginya, ia akan diarahkan ke http://visualise.ca/#! / anne-au-cherry (ini dilakukan dengan javascript).

Untuk memberikan crawler yang dibutuhkan, ?_escaped_fragment_=saya menggunakan peretasan WordPress yang saya temukan di internet: http://www.wordpress-fr.net/support/sujet-54810-add-action-parse-request dan sekarang GoogleBot dapat melihat konten dari halaman bertenaga AJAX saya. Saya pikir semuanya sudah selesai.

Tetapi ketika saya menempelkan tautan posting ke Facebook (yaitu) ia tidak dapat membaca konten halaman, jadi saya menduga situs web saya tidak benar-benar menghargai skema yang dijelaskan dalam dokumentasi Google karena Facebook mendukungnya (Jika Anda menempelkan http : //twitter.com/#! / gablabelle akan berfungsi). Jadi karena saya menggunakan plugin jQuery.address untuk mendapatkan hashbang (#!), Saya pergi ke situs web mereka dan mengunduh file sampel mereka untuk melihat apa perbedaan antara file mereka dan milik saya dan menyadari bahwa mereka mungkin menggunakan fungsi php untuk membuat snapshot HTML yang diperlukan: https://github.com/bartaz/jquery-address/blob/master/samples/crawling/index.php karena ini sebabnya, saya kira, Facebook tidak bisa membaca milik saya.

<?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');
    }

?>

Jadi tebakan saya adalah bahwa saya mungkin bisa menggunakan fungsi php yang serupa untuk melayani snapshot HTML daripada menggunakan hack WordPress tetapi saya perlu menyesuaikannya dengan WordPress. Masalahnya adalah saya bukan programmer dan saya melakukan yang terbaik sejauh ini.

Posting saya dalam format ini: http://visualise.ca/#!/anne-au-cherry dan versi statis tersedia di http://visualise.ca/anne-au-cherry (Di mana anne-au-cherry adalah siput posting dan perubahan tergantung pada halaman yang kami lihat).

Jadi pertanyaan saya adalah dapatkah seseorang mengonfirmasi bahwa saya berada di jalur yang benar dan jika mungkin juga membantu membuat fungsi php itu?

Terima kasih banyak atas waktu dan bantuan Anda!


5
Pernahkah Anda berpikir untuk membuat peta situs? Sebagai contoh, Yoast WordPress SEO secara otomatis menghasilkan sitemap untuk konten Anda dan mengirimkannya ke Bing, Google, dan Yahoo ...

Memberi +1 pada gagasan peta situs. Saya masih bingung dengan param url yang diteruskan untuk menampilkan situs ke Google. Bisakah Anda menempelkan url yang mencakup a) konten halaman dan b) berjalan tanpa JavaScript? Jika itu tidak ada, tidak ada yang bisa dirayapi oleh Google atau Facebook.
brandwaffle

Jawaban:


4

Khususnya HINDARI menggunakan "hashbang" ("! #") Untuk membuat situs WordPress bertenaga AJAX dapat dijelajahi.

Anda benar-benar tidak ingin menggunakan metode "hashbang" di situs WordPress.

"! #" Lebih seperti tambalan yang diretas untuk situs yang tidak dapat menyediakan analog statis untuk versi AJAX itu. Penggunaannya secara umum tidak direkomendasikan oleh Google kecuali tidak ada alternatif yang tersedia.

Tidak ada manfaatnya menerapkan sistem hashbang di WordPress. Solusi AJAX front-end untuk WordPress harus bekerja di sekitar skema url yang ada (tanpa hash, no bang).

Ringkasan: WordPress secara alami dapat dijelajahi; hanya tidak mematahkannya menggunakan hash-poni.


1

Jika Anda secara khusus merujuk ke Facebook yang tidak menunjukkan informasi meta untuk halaman Anda dengan benar, Anda harus melihat ke dalam plugin OpenGraph untuk WordPress, karena itu akan menambahkan og: atribut metadata yang sesuai. http://wordpress.org/extend/plugins/opengraph/

Anda juga dapat menambahkan tautan seperti ini di header

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

Dan lihat apakah itu berhasil.

Saya harus bertanya, mengapa Anda melakukan ini? Twitter telah mendapat tekanan besar untuk struktur URL ini justru karena sulit untuk dijelajahi. Bukan mengatakan Anda tidak boleh melakukannya, tetapi cukup ingin tahu apa alasannya :)


1

Apa yang saya lakukan sebenarnya adalah untuk tidak menggunakan hashbangs seperti yang disarankan WraithKenny.

Menggunakan plugin alamat jQuery dengan metode $ .address.state (nilai) untuk menetapkan jalur dasar situs web yang digunakan dalam manajemen negara HTML5 dan metode $ .address.value (nilai) untuk mengatur arus nilai tautan yang dalam saya bisa melakukan apa yang saya inginkan.

http://visualise.ca/

Posting (klik pada gambar kecil gambar) dimuat melalui AJAX dan URL berubah pada saat yang sama, posting ada pada mereka sendiri menggunakan, tentu saja, struktur permalink yang sama sehingga sepenuhnya dapat dirayapi.

Satu-satunya masalah adalah untuk browser lama yang, saya pikir (perlu diverifikasi), masih melihat hashbangs.

Karena saya bukan pengembang, saya butuh banyak waktu untuk mengerti. : - / Tapi saya cukup senang dengan hasilnya sekarang ;-)

alamat jQuery: http://www.asual.com/jquery/address/


1
Lihatlah plugin jQuery pjax. github.com/defunkt/jquery-pjax Ini sangat mirip tetapi akan mengurus memuat konten untuk Anda, dll. Berikut adalah contoh dari apa yang saya lakukan dengan tema Twith
chrisguitarguy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.