كيف يمكنني الحصول على وظيفة language_attributes في WordPress لإرجاع XHTML 1.1 صالح؟

StackOverflow https://stackoverflow.com/questions/1805718

سؤال

لدي قالب ووردبريس يحتوي على العنصر التالي:

<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>

هذا يعود:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en-US">

لسوء الحظ، السمة "lang" غير صالحة لـ XHTML 1.1 - ويرغب العميل في الحصول على هذا المستوى من التحقق من الصحة.

يحتوي ملف WordPress العام-template.php على الكود التالي:

if ( get_option('html_type') == 'text/html' || $doctype == 'html' )
    $attributes[] = "lang=\"$lang\"";

$doctype هي المعلمة التي تم تمريرها إليها (في هذه الحالة 'xhtml').يجب get_option هل يتم إرجاع قيمة أخرى غير "نص/html"؟إذا كان الأمر كذلك، ما الذي يجب أن أقوم بإعداده في WordPress لتحقيق ذلك - إن وجد؟

لقد حاولت أيضًا استخدام preg_replace لإخراج السمة "lang"، ولكن يبدو أن هذا لا يمكنه مطابقة النص.إذا قمت بإدخال النص يدويا، فإنه يطابق!من المحتمل أن تكون هناك مشكلة في الترميز حيث يتم إرجاع السلسلة بواسطة language_attributes؟

هل كانت مفيدة؟

المحلول

لقد حللت هذا.يوجد مرشح "language_attributes"، لذلك كتبت ملف توصيل في يتم ربطه بذلك ويقوم بإجراء preg_replace بسيط.لقد نجح الاستبدال عند إجرائه هنا، وهي طريقة رائعة جدًا للتعامل معه.

يحرر

كما هو مطلوب، إليك الرمز الذي استخدمته:

<?php
/*
Plugin Name: Create Valid XHTML 1.1
Plugin URI: http://www.mycompany.com/create_valid_xhtml_1_1
Description: Removes deprecated "lang" attribute from (X)HTML header.
Author: dommer
Version: 1.0.0
Author URI: http://www.mycompany.com
*/

function create_valid_xhtml_1_1($language_attributes) 
{
    return preg_replace('/ lang=\"[a-z]+\-[A-Z]+\"/', '', $language_attributes);
}

add_filter('language_attributes', 'create_valid_xhtml_1_1');
?>

نصائح أخرى

وإذا كان هذا هو مجرد موضوع في موقعك، هل يمكن تعديل وتغيير header.php على

و<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>

وخط أن ضمنية، ويحسن الأداء جدا: -)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top