วิธีการรักษามาตรฐาน W3C ให้สอดคล้องกับธีม


10

เมื่อฉันเขียนธีมฉันแน่ใจว่าสอดคล้องกับ XHTML 1.1 และ CSS 2.1 จากนั้นฉันเพิ่มปลั๊กอินและชุดรูปแบบไม่สอดคล้องกับ XHTMl 1.1 อีกต่อไป จากนั้นฉันก็ใช้แบบอักษร Google API ใน CSS ของฉันและเป็นไปตาม CSS 2.1 ที่ยาวขึ้น

มีวิธีที่ฉันสามารถรักษาความสอดคล้องโดยไม่ต้องกำจัดปลั๊กอินแบบอักษร ฯลฯ หรือฉันควรละเว้นข้อผิดพลาดการตรวจสอบหรือไม่

คำตอบ:


5

การแก้ไขชุดรูปแบบของคุณยังคงเป็นไปตาม XHTML 1.1 และ CSS 2.1 แต่ปลั๊กอินที่คุณเพิ่มใส่รหัสเพิ่มเติมที่ไม่สอดคล้อง

น่าเสียดายที่ไม่มีวิธีง่าย ๆ ในการรักษาความสอดคล้องหากคุณใช้ปลั๊กอิน สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือตรวจสอบธีมของคุณและมาร์กอัปทั้งหมดที่คุณรับผิดชอบเองจากนั้นหวังว่าผู้พัฒนารายอื่นจะใช้เวลาในการตรวจสอบงานของตนเอง

ทางเลือกคือการทำงานมากขึ้นในส่วนของคุณ - คุณยังสามารถใช้ฟังก์ชั่นหลักของปลั๊กอิน แต่ไม่ได้ช่วยให้พวกเขาส่งออกใด ๆมาร์กอัปเบราว์เซอร์ เพิ่มเลเยอร์ที่กำหนดเองของคุณเองที่จะไม่สัมผัสกับทุกสิ่งที่ปลั๊กอินและสร้างบัฟเฟอร์เอาต์พุตของคุณเอง นี่เป็นวิธีเดียวที่คุณจะสามารถควบคุมสไตล์ของมาร์กอัปที่ส่งไปยังเบราว์เซอร์

มีปลั๊กอินหลายตัวเริ่มใช้ HTML 5 ... และอื่น ๆ กำลังพยายามใช้ CSS3 หากคุณติดตั้งปลั๊กอินเหล่านี้และไม่ทำตามขั้นตอนในการฆ่าเชื้อและตรวจสอบความถูกต้องของผลลัพธ์เว็บไซต์ของคุณจะหยุดทำการตรวจสอบความถูกต้อง


1
ขอบคุณฉันไม่คิดว่าฉันต้องการไปกับตัวเลือกในการฆ่าเชื้อ HTML ฉันเพียงแค่อาจต้องเอาป้าย W3C ผู้ที่มาจากเว็บไซต์ของฉัน :)
เจมส์

โอ้ไม่จำเป็นที่คุณจะต้องได้รับการปฏิบัติตามโดยอัตโนมัติโปรดดูคำตอบของฉันด้านล่าง ไม่ต้องวุ่นวายกับชุดรูปแบบหรือเอาท์พุทปลั๊กอิน :)
hakre

+1 คุณไม่สามารถพึ่งพารหัสประชาชนอื่น ๆ ได้เพียงหวังว่ารหัสของพวกเขาจะแยก html ที่ถูกต้องออกมา
Ben Everard

8

ปลั๊กอินแต่ละตัวจะสร้างรหัสที่ต้องการสร้างและบางส่วนจะไม่เป็นไปตามมาตรฐาน XHTML 1.1 วิธีเดียวที่เหมาะสมในการแก้ไขที่จะทำการตรวจสอบแต่ละรายการและแก้ไขผู้กระทำผิดหรือให้ผู้พัฒนาทำการแก้ไขหรือใช้การแก้ไขของคุณเป็นโปรแกรมแก้ไข

อีกวิธีหนึ่งคุณสามารถลองเขียนตัวกรองเพื่อล้างมัน แต่พยายามจับทุกกรณีพิเศษดูเหมือนว่าเป็นรุ่นฝันร้ายส่วนตัวของฉันเองและมันจะส่งผลกระทบต่อประสิทธิภาพการทำงานเพื่อผลประโยชน์ที่ไม่เหมาะสม

คุณมีลูกค้า / เจ้านายที่ต้องการนี้หรือจะเป็นเพียงสิ่งที่ถือว่าเป็น " ที่ดีต่อการมี ?" (ใช่มีบางคนที่รู้สึกอย่างมากเกี่ยวกับเรื่องนี้ แต่ฉันไม่ได้เป็นหนึ่งในนั้น)

XHTML กำลังเปิดเผยสถานะ " เด็กที่มีผมสีดี " บนเว็บ แม้แต่ทิมเบอร์เนอร์ - ลีก็ พูดกลับในปี 2549:

บางสิ่งมีความชัดเจนยิ่งขึ้นเมื่อมองย้อนกลับไปหลายปี มีความจำเป็นต้องพัฒนา HTML ทีละส่วน ความพยายามในการทำให้โลกเปลี่ยนเป็น XML รวมถึงเครื่องหมายคำพูดรอบค่าแอตทริบิวต์และเครื่องหมายทับในแท็กเปล่าและเนมสเปซทั้งหมดในครั้งเดียวไม่สามารถใช้งานได้ สาธารณะที่สร้าง HTML ขนาดใหญ่ไม่ได้ย้ายเนื่องจากเบราว์เซอร์ไม่ได้บ่น ชุมชนขนาดใหญ่บางแห่งเปลี่ยนไปและสนุกกับผลไม้ของระบบที่มีรูปแบบที่ดี แต่ไม่ใช่ทั้งหมด สิ่งสำคัญคือการคงไว้ซึ่ง HTML แบบเพิ่มขึ้นตลอดจนการเปลี่ยนแปลงไปสู่โลกที่มีรูปแบบที่ดีขึ้นและการพัฒนาพลังงานมากขึ้นในโลกนั้น

คุณอาจต้องการอ่านHTML5 นั้นง่ายกว่าการเขียนมากกว่า XHTML 1.0 มากกว่าบน StackOverflow นี่คือบทสรุปของพวกเขา:

เพียงใช้ไวยากรณ์เมื่อคุณใช้ HTML5 คุณจะจบลงด้วยมาร์กอัปที่สะอาดและง่ายต่อการอ่านซึ่งจะเรียกใช้โหมดมาตรฐานเสมอ เมื่อคุณใช้ XHTML 1.0 (ทำหน้าที่เป็นข้อความ / html) คุณกำลังระบุ crud จำนวนมาก (เพื่อตรวจสอบความถูกต้องของ Crappy dtd) ที่เบราว์เซอร์จะทำโดยอัตโนมัติ


มันเป็นเว็บไซต์ส่วนตัวของฉันและธีมก็ค่อนข้างเก่า เว็บไซต์และธีมเป็นเพียงงานอดิเรกสำหรับฉัน ตามเวลาที่ฉันเขียนชุดรูปแบบใหม่เราอาจจะได้รับการสนับสนุน HTML5 ที่ดีพอสมควรในเบราว์เซอร์หลักทั้งหมด ส่วนเสริมจะยังคงสร้างมาร์กอัปที่ไม่สอดคล้องกันต่อไป ฉันสามารถลองล้างผู้กระทำผิด แต่จากนั้นการอัปเดตปลั๊กอินจะรุนแรงขึ้น ขอบคุณสำหรับลิงค์
James

ใช่ถ้าไม่ใช่เพื่อจุดประสงค์ทางธุรกิจหรือเพื่อแสดงความเชี่ยวชาญเกี่ยวกับความสามารถของคุณในการรักษา XHTML ให้สอดคล้องฉันไม่ต้องกังวลเกี่ยวกับมัน
MikeSchinkel

ฉันใช้เว็บไซต์และเซิร์ฟเวอร์เป็นเครื่องมือการเรียนรู้ การเรียนรู้สิ่งที่แตกต่างจากสิ่งที่ฉันทำในที่ทำงาน
James

คนเกียจคร้าน ฟังดูเหมือนเป็นงานที่ไม่สนุก การเรียนรู้คือทั้งหมดที่ฉันทำ! :)
MikeSchinkel

โอ้งานนั้นสนุกดี แต่ส่วนใหญ่เป็นการพัฒนาโดยใช้ Windows นี่เป็นเหมือนการหยุดพักจาก C # :)
James

2

การปฏิบัติตามมาตรฐานไม่ได้รับประกันว่าเว็บไซต์ของคุณจะทำงานในทุกเบราว์เซอร์ ละเว้นการปฏิบัติตามมาตรฐานและมุ่งเน้นการทดสอบด้วยเบราว์เซอร์ให้ได้มากที่สุด


1

คุณสามารถบัฟเฟอร์ผลลัพธ์ทั้งหมดของไซต์ของคุณและจัดระเบียบให้เป็น HTML ที่เป็นไปตามมาตรฐาน สิ่งที่ดีที่สุดคือสิ่งนี้สามารถทำได้โดยอัตโนมัติอย่างสมบูรณ์:

คุณสามารถเปิดใช้งานการบัฟเฟอร์ผลลัพธ์ในธีม init หรือ hooks ที่เกี่ยวข้อง (เช่น * setup_theme * hook)

นี่คือสองส่วนรหัส อันแรกแสดงให้เห็นว่าคุณเริ่มบัฟเฟอร์การส่งออกและอ่านบัฟเฟอร์ในภายหลัง:

<?php
ob_start();
?><?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

รายการที่สองแสดงตัวเลือกการกำหนดค่าบางส่วนที่ใช้งานได้:

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

ฉันเดิมพันว่ามีปลั๊กอิน WordPress ที่มีอยู่แล้วสำหรับการทำเช่นนั้น มาดูกัน:


น่าสนใจ ฉันจะลองดู
James
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.