ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingsitemap แบบนี้แก้ไขอย่างไรครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: sitemap แบบนี้แก้ไขอย่างไรครับ  (อ่าน 1216 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
jittapan
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 850



ดูรายละเอียด เว็บไซต์
« เมื่อ: 08 กรกฎาคม 2016, 20:29:07 »

zzzzzzzzzzzzzz.com/sitemap.xml


This page contains the following errors:

error on line 2 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
บันทึกการเข้า

sputtaro
สมุนแก๊งเสียว
*

พลังน้ำใจ: 139
ออฟไลน์ ออฟไลน์

กระทู้: 910



ดูรายละเอียด
« ตอบ #1 เมื่อ: 08 กรกฎาคม 2016, 20:46:05 »

เป็น errors เกี่ยวกับ คำประกาศ (declaration) ของ XML น่าจะเป็นที่ xmlns="...." ใส่ไว้ผิดครับ
แต่ไม่แน่ใจว่าของคุณ ใส่ไว้ยังไง

ของผม ในไฟล์ sitemapindex นะครับ ตามนี้
โค๊ด:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

ส่วนในไฟล์ sitemap url ก็ตามนี้ครับ
โค๊ด:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

ที่จริง สามารถใช้ declare ได้หลายแบบ แล้วแต่เลือกเอาครับ
ยังไงก็ลองตรวจสอบความถูกต้อง ตามเว็บต่างๆได้ครับ เช่น

https://www.xml-sitemaps.com/validate-xml-sitemap.html

หรือ

http://www.validome.org/google/


อ่านเพิ่มเติม ตามนี้ครับ
http://www.sitemaps.org/protocol.html
« แก้ไขครั้งสุดท้าย: 08 กรกฎาคม 2016, 20:51:04 โดย sputtaro » บันทึกการเข้า
jittapan
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 850



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 08 กรกฎาคม 2016, 21:41:49 »

ผมแก้แล้วไม่ได้ครับ

https://drive.google.com/file/...hnbGo4cFpiejg/view?usp=sharing


https://drive.google.com/file/...FsbWFSaWRKc1k/view?usp=sharing


ช่วยดูทีครับ
บันทึกการเข้า

sputtaro
สมุนแก๊งเสียว
*

พลังน้ำใจ: 139
ออฟไลน์ ออฟไลน์

กระทู้: 910



ดูรายละเอียด
« ตอบ #3 เมื่อ: 08 กรกฎาคม 2016, 22:02:23 »

เท่าที่ดูในไฟล? sitemap.php

ลองแก้ไข จาก
โค๊ด:
echo '<?xml-stylesheet type="text/xsl" href="'.$conf[full_path].'sitemap.xsl"?>';
echo '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url>

เป็น

โค๊ด:
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url>
<loc>'.$conf[full_path].'</loc>
<lastmod>'.$gmdate.'</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>

</url>';

ไม่ต้องใช้ xml-stylesheet
และ ใช้ schemas ของ http://www.sitemaps.org/schemas/sitemap/0.9

เนื่องจาก XMLSchema-instance ของ www.w3.org นั้นต้องใช้ xsd ซึ่งอาจมีปัญหายุ่งยากอีกหลายอย่าง
 ลองอ่านลิ้งค์นี้ดูนะครับ

http://stackoverflow.com/quest...instance-a-special-case-in-xml

http://stackoverflow.com/quest...w3-org-2001-xmlschema-instance

http://stackoverflow.com/quest...or-while-parsing-xsd-using-xjc



**********************************************************

สคริปท์ของผมนะครับ ประมาณนี้ ( ผมลบออกหลายส่วน เพื่อให้คุณดูเป็นแนวเท่านั้นนะครับ)

$gen_file = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$gen_file .= '<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9 ">'."\n";


ประมาณนี้แหละครับ สังเกตุดู จะเห็นแต่ส่วนหัว สำหรับ sitemapindex
ส่วนของ sitemap url ก็หลักการเดียวกัน แค่เปลี่ยนเป็น
$gen_file = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$gen_file .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9 ">'."\n";

***** แก้ไข เพื่อไม่ให้งงนะครับ **********
while ($row = $stmt->fetch()) {
         
         $genfile .= "<url>";
         $genfile .= "<loc>http://".$siteurl."/details.php?product=".$ptaglink."</loc>";
            $genfile .= "<changefreq>daily</changefreq>";
         $genfile .= "<priority>0.65</priority>";
         $genfile .= "</url>\n";
        }
      $stmt->close();



ตัวเนื้อหาของไฟล์ เป็นการดึงมาจาก ดาต้าเบสทั้งนั้น
คงเหมือนกับที่คุณเขียนนั่นแหละครับ
ต่างกันตรง การอ้างอิง schemas
« แก้ไขครั้งสุดท้าย: 08 กรกฎาคม 2016, 22:29:40 โดย sputtaro » บันทึกการเข้า
thaicoffin
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 1,128



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 08 กรกฎาคม 2016, 22:38:20 »

งง เลย wanwan023

แต่ก็ขอบคุณ ทุก ข้อมูล นะครับ
บันทึกการเข้า

sputtaro
สมุนแก๊งเสียว
*

พลังน้ำใจ: 139
ออฟไลน์ ออฟไลน์

กระทู้: 910



ดูรายละเอียด
« ตอบ #5 เมื่อ: 08 กรกฎาคม 2016, 23:30:30 »

ผมเข้าใจเจตนาของคุณแล้วครับ คือ คุณต้องการสร้างหน้า sitemap html จากไฟล์ .xml โดยตรงใช่ไหม

ก่อนอื่นต้องเข้าใจ หลักการ ของ กูเกิลเว๋บมาสเตอร์ไกด์ไลน์ เกี่ยวกับเรื่อง sitemap ก่อน

คือ Google ต้องการให้เราสร้าง sitemap ออกมา 2 แบบ
แบบที่ 1 สำหรับ เครื่องจักรอ่าน ก็คือ กูเกิลบอทอ่านนั่นแหละ
แบบที่ 2 สำหรับ มนุษย์อ่าน

**********************************
แบบที่ 1 ก็คือ sitemap ไฟล์ .xml ปกติตามที่กูเกิลแนะแนวไว้
คุณก็สร้างไฟล์ โดยยึด schemas ของ http://www.sitemaps.org ได้เลย ง่าย ไม่ยุ่งยาก

และในแบบที่ 2 สร้างหน้า html คุณก็สร้าง หน้าปกติ เหมือนกับที่สร้างหน้าสินค้านั่นแหละ
เพียงแต่ การแบ่ง จำนวนหน้า หรือการดึงข้อมูล ก็ยึดตามแนวการสร้างไฟล์ .xml

ลองดูจากลิ้งค์นี้ นะครับ จะเห็นคัวอย่าง แล้วลองวิวซอร์สดู
https://www.xml-sitemaps.com/sitemap.html

ผมเจอมาจากนี้ครับ
https://www.xml-sitemaps.com/html-sitemap.html


แต่เว็บผมไม่ได้สร้างตามแนวคิดนี้ ผมเน้นเฉพาะ category อย่างเดียว พอคลิ๊ก ที่ลิ้งค์ของแต่ละ category
ก็จะเข้าไปยังหน้า catalog วนแบบนี้ไปจนครบทุกสินค้าเหมือนกัน
ซึ่งมันต่างจากตัวอย่างที่ผมให้ลิ้งค์ไว้ คนละแนวคิด

แต่ถ้าจะทำก็ไม่ยาก เพียงแบ่งจำนวนหน้า แล้ว ดึงข้อมูลมาแสดง ก็จบแล้ว มันง่ายกว่าที่ผมทำเยอะ

*********************
ขออนุญาตเพิ่มนิดนึงนะครับ

แต่เดิมในหน้า sitemap.php ของผม มีแบ่งตามวันที่โพสท์ให้ดูด้วย แต่ผมมาคิดดูว่า มันเยอะเกินไป และ ไม่มีที่สิ้นสุด

ผมต้องการให้หน้า sitemap.php จบในหน้าเดียว แต่สามารถคลิ๊กไปยังสินค้าได้ทุกชิ้น ไม่ว่าจะมีกี่หมื่น กี่แสนชิ้นก็ตาม
สุดท้าย เลยเหลือเพียง แบ่งตาม category เท่านั้น
« แก้ไขครั้งสุดท้าย: 08 กรกฎาคม 2016, 23:49:05 โดย sputtaro » บันทึกการเข้า
jittapan
Verified Seller
สมุนแก๊งเสียว
*

พลังน้ำใจ: 28
ออฟไลน์ ออฟไลน์

กระทู้: 850



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 09 กรกฎาคม 2016, 00:00:34 »

 Cry

เยี่ยมมาก

 wanwan017

แต่ยังไม่ได้ครับ
บันทึกการเข้า

top445
สมุนแก๊งเสียว
*

พลังน้ำใจ: 52
ออฟไลน์ ออฟไลน์

กระทู้: 804



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 09 กรกฎาคม 2016, 09:55:19 »

ผมเข้าใจเจตนาของคุณแล้วครับ คือ คุณต้องการสร้างหน้า sitemap html จากไฟล์ .xml โดยตรงใช่ไหม

ก่อนอื่นต้องเข้าใจ หลักการ ของ กูเกิลเว๋บมาสเตอร์ไกด์ไลน์ เกี่ยวกับเรื่อง sitemap ก่อน

คือ Google ต้องการให้เราสร้าง sitemap ออกมา 2 แบบ
แบบที่ 1 สำหรับ เครื่องจักรอ่าน ก็คือ กูเกิลบอทอ่านนั่นแหละ
แบบที่ 2 สำหรับ มนุษย์อ่าน

**********************************
แบบที่ 1 ก็คือ sitemap ไฟล์ .xml ปกติตามที่กูเกิลแนะแนวไว้
คุณก็สร้างไฟล์ โดยยึด schemas ของ http://www.sitemaps.org ได้เลย ง่าย ไม่ยุ่งยาก

และในแบบที่ 2 สร้างหน้า html คุณก็สร้าง หน้าปกติ เหมือนกับที่สร้างหน้าสินค้านั่นแหละ
เพียงแต่ การแบ่ง จำนวนหน้า หรือการดึงข้อมูล ก็ยึดตามแนวการสร้างไฟล์ .xml

ลองดูจากลิ้งค์นี้ นะครับ จะเห็นคัวอย่าง แล้วลองวิวซอร์สดู
https://www.xml-sitemaps.com/sitemap.html

ผมเจอมาจากนี้ครับ
https://www.xml-sitemaps.com/html-sitemap.html


แต่เว็บผมไม่ได้สร้างตามแนวคิดนี้ ผมเน้นเฉพาะ category อย่างเดียว พอคลิ๊ก ที่ลิ้งค์ของแต่ละ category
ก็จะเข้าไปยังหน้า catalog วนแบบนี้ไปจนครบทุกสินค้าเหมือนกัน
ซึ่งมันต่างจากตัวอย่างที่ผมให้ลิ้งค์ไว้ คนละแนวคิด

แต่ถ้าจะทำก็ไม่ยาก เพียงแบ่งจำนวนหน้า แล้ว ดึงข้อมูลมาแสดง ก็จบแล้ว มันง่ายกว่าที่ผมทำเยอะ

*********************
ขออนุญาตเพิ่มนิดนึงนะครับ

แต่เดิมในหน้า sitemap.php ของผม มีแบ่งตามวันที่โพสท์ให้ดูด้วย แต่ผมมาคิดดูว่า มันเยอะเกินไป และ ไม่มีที่สิ้นสุด

ผมต้องการให้หน้า sitemap.php จบในหน้าเดียว แต่สามารถคลิ๊กไปยังสินค้าได้ทุกชิ้น ไม่ว่าจะมีกี่หมื่น กี่แสนชิ้นก็ตาม
สุดท้าย เลยเหลือเพียง แบ่งตาม category เท่านั้น


ขอบคุณครับ
บันทึกการเข้า

mango
สมุนแก๊งเสียว
*

พลังน้ำใจ: 83
ออฟไลน์ ออฟไลน์

กระทู้: 948



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 09 กรกฎาคม 2016, 17:56:38 »

ขอเก็บกระทู้นี้เอาไว้เรยนะครับ  wanwan017
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์