Скрипты и валидность

C
На сайте с 07.12.2016
Offline
12
1784

Установил несколько плагинов на WP, валидность кода попросту испарилась, появилось миллиард новых непонятных строк, а самое интересное я не знаю как это все дело оптимизировать. Знаю о том, что скрипты нужно поместить в CDATA, но как это сделать если wp выводит их через php wp_head

То что есть в шаблоне:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">

<head profile="http://gmpg.org/xfn/11">
<link rel="icon" href="домен.ру/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="домен.ру/favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php wp_title(''); ?><?php if(wp_title('', false)) { echo ' |'; } ?> <?php bloginfo('name'); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/css/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/css/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/css/ie.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php wp_head();?>
</head>
<body <?php body_class(); ?>>
<div id="wrapper"><div id="wrapper-bg">

<div id="outer-wrapper" class="outer-wrapper">


<div id="header" class="outer">
<div class="header-part">

<?php
if($get_logo_image != '') {
?>
<?php
} else {
?>
<?php
}
?>

</div>

</div>

<div class="outer">

<div id="topsearch" >
<?php get_search_form(); ?>
</div>
</div>

То что есть по факту при просмотре страницы в html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">

<head profile="http://gmpg.org/xfn/11">
<link rel="icon" href="домен.ру/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="домен.ру/favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Тайтл</title>
<link rel="stylesheet" href="домен.ру/wp-content/themes/SpeedCars/css/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="домен.ру/wp-content/themes/SpeedCars/css/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="домен.ру/wp-content/themes/SpeedCars/css/ie.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="домен.ру/wp-content/themes/SpeedCars/style.css" type="text/css" media="screen" />

<!-- All in One SEO Pack 2.3.11.1 by Michael Torbert of Semper Fi Web Design[465,499] -->
<meta name="description" content="Описание" />
<link rel='next' href='http://домен.ру/page/2' />

<link rel="canonical" href="http://домен.ру/" />
<!-- /all in one seo pack -->
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/xn----8sbec6a3aezg.xn--p1ai\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.6.1"}};
!function(a,b,c){function d(a){var c,d,e,f,g,h=b.createElement("canvas"),i=h.getContext&&h.getContext("2d"),j=String.fromCharCode;if(!i||!i.fillText)return!1;switch(i.textBaseline="top",i.font="600 32px Arial",a){case"flag":return i.fillText(j(55356,56806,55356,56826),0,0),!(h.toDataURL().length<3e3)&&(i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,65039,8205,55356,57096),0,0),c=h.toDataURL(),i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,55356,57096),0,0),d=h.toDataURL(),c!==d);case"diversity":return i.fillText(j(55356,57221),0,0),e=i.getImageData(16,16,1,1).data,f=e[0]+","+e[1]+","+e[2]+","+e[3],i.fillText(j(55356,57221,55356,57343),0,0),e=i.getImageData(16,16,1,1).data,g=e[0]+","+e[1]+","+e[2]+","+e[3],f!==g;case"simple":return i.fillText(j(55357,56835),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode8":return i.fillText(j(55356,57135),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode9":return i.fillText(j(55358,56631),0,0),0!==i.getImageData(16,16,1,1).data[0]}return!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i;for(i=Array("simple","flag","unicode8","diversity","unicode9"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
</script>
<style type="text/css">
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='dashicons-css' href='домен.ру/wp-includes/css/dashicons.min.css?ver=4.6.1' type='text/css' media='all' />
<link rel='stylesheet' id='admin-bar-css' href='домен.ру/wp-includes/css/admin-bar.min.css?ver=4.6.1' type='text/css' media='all' />
<link rel='stylesheet' id='jetpack_css-css' href='домен.ру/wp-content/plugins/jetpack/css/jetpack.css?ver=4.4.2' type='text/css' media='all' />
<script type='text/javascript' src='http://домен.ру/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script>
<script type='text/javascript' src='http://домен.ру/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script>
<link rel='https://api.w.org/' href='домен.руi/wp-json/' />
<link rel='shortlink' href='http://wp.me/8c56B' />

<link rel='dns-prefetch' href='//v0.wordpress.com'>
<link rel='dns-prefetch' href='//i0.wp.com'>
<link rel='dns-prefetch' href='//i1.wp.com'>
<link rel='dns-prefetch' href='//i2.wp.com'>
<style type='text/css'>img#wpstats{display:none}</style><style type="text/css" id="custom-background-css">
body.custom-background { background-color: #f1f0f0; }
</style>
<style type="text/css" media="print">#wpadminbar { display:none; }</style>
<style type="text/css" media="screen">
html { margin-top: 32px !important; }
* html body { margin-top: 32px !important; }
@media screen and ( max-width: 782px ) {
html { margin-top: 46px !important; }
* html body { margin-top: 46px !important; }
}
</style>

<!-- Jetpack Open Graph Tags -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Описание" />
<meta property="og:description" content="Описание" />
<meta property="og:url" content="http://домен.ру/" />
<meta property="og:site_name" content="Описание" />
<meta property="og:image" content="https://s0.wp.com/i/blank.jpg" />
<meta property="og:locale" content="ru_RU" />

<style type='text/css'>
#wpadminbar .quicklinks li#wp-admin-bar-stats {
height: 28px;
}
#wpadminbar .quicklinks li#wp-admin-bar-stats a {
height: 28px;
padding: 0;
}
#wpadminbar .quicklinks li#wp-admin-bar-stats a div {
height: 28px;
width: 95px;
overflow: hidden;
margin: 0 10px;
}
#wpadminbar .quicklinks li#wp-admin-bar-stats a:hover div {
width: auto;
margin: 0 8px 0 10px;
}
#wpadminbar .quicklinks li#wp-admin-bar-stats a img {
height: 24px;
padding: 2px 0;
max-width: none;
border: none;
}
</style>
<script type="text/javascript">
/* <![CDATA[ */
var wpNotesIsJetpackClient = true;
var wpNotesIsJetpackClientV2 = true;
/* ]]> */
</script>
</head>
<body>

Как можно заметить полная з.....ца. Что с этим можно сделать? Как оптимизировать?

melkozaur
На сайте с 06.04.2010
Offline
526
#1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

Откуда это берется? Почему не

<!DOCTYPE html>

?

По идее, это должно создавать 100500 ошибок при проверке валидации, так что лучше оставить

<!DOCTYPE HTML>
Серверы в NL/US со скидкой 30% нашим читателям: E5-2650v4/10GB DDR4/240GB SSD/1 Gbps - от $20: https://ua-hosting.company/vps/nl SEO без компромиссов: https://seoleaks.net SEOLEAKS - продвижение сайтов: https://www.instagram.com/seoleaks
C
На сайте с 07.12.2016
Offline
12
#2

Дефолтные шаблоны, от туда и берется :)

---------- Добавлено 11.12.2016 в 09:00 ----------

Оставил просто HTML>, итог ошибок 33, было 29...

---------- Добавлено 11.12.2016 в 09:03 ----------

Валидатор ругается на эту ересь:

<script type="text/javascript">

window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/xn----8sbec6a3aezg.xn--p1ai\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.6.1"}};
!function(a,b,c){function d(a){var c,d,e,f,g,h=b.createElement("canvas"),i=h.getContext&&h.getContext("2d"),j=String.fromCharCode;if(!i||!i.fillText)return!1;switch(i.textBaseline="top",i.font="600 32px Arial",a){case"flag":return i.fillText(j(55356,56806,55356,56826),0,0),!(h.toDataURL().length<3e3)&&(i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,65039,8205,55356,57096),0,0),c=h.toDataURL(),i.clearRect(0,0,h.width,h.height),i.fillText(j(55356,57331,55356,57096),0,0),d=h.toDataURL(),c!==d);case"diversity":return i.fillText(j(55356,57221),0,0),e=i.getImageData(16,16,1,1).data,f=e[0]+","+e[1]+","+e[2]+","+e[3],i.fillText(j(55356,57221,55356,57343),0,0),e=i.getImageData(16,16,1,1).data,g=e[0]+","+e[1]+","+e[2]+","+e[3],f!==g;case"simple":return i.fillText(j(55357,56835),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode8":return i.fillText(j(55356,57135),0,0),0!==i.getImageData(16,16,1,1).data[0];case"unicode9":return i.fillText(j(55358,56631),0,0),0!==i.getImageData(16,16,1,1).data[0]}return!1}function e(a){var c=b.createElement("script");c.src=a,c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i;for(i=Array("simple","flag","unicode8","diversity","unicode9"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
</script>

Я понимаю чисто из-за того что она не закрыта в CDATE, только как ее закрыть в CDATE, если в шаблоне она выведена в виде php wp_head, где редактировать код скрипта?

melkozaur
На сайте с 06.04.2010
Offline
526
#3

Chichipidl,

Отключите поддержку emoji, прописав в functions.php код:

/* --------------------------------------------------------------------------

* Отключаем Emojii
* -------------------------------------------------------------------------- */
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_wp_emojis_in_tinymce' );
function disable_wp_emojis_in_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
/* --------------------------------------------------------------------------- */

Код взял в гугле, не знаю, насколько он рабочий :)

samimages
На сайте с 31.05.2009
Offline
427
#4

wp_head надо отключать... т.е. комплектуешь двигло полностью как задумал, копируешь оттуда необходимый вывод для работы плагинов и отключаешь его нафиг, а все необходимое просто переносишь в обычный head.

Опыт как иммунитет — приобретается в муках! Хостинг: экономия до 1300 руб + домен в подарок ( https://clck.ru/XLscf ) / Аудит семантики от 15К [долго] - ЛС
C
На сайте с 07.12.2016
Offline
12
#5

Он рабочий, но не совсем, все равно остались ошибки. Блок со скриптом ушел. Но появилась новая ругань:

<link rel='dns-prefetch' href='//i0.wp.com'>
<link rel='dns-prefetch' href='//i1.wp.com'>
<link rel='dns-prefetch' href='//i2.wp.com'>


<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel='dns-prefetch' href='//s.w.org' />

Получается осталось только затереть каким-то образом 5 ссылок и missoion complited.

Все из-за плагина jetpack, до него не было wp_head. Единственный плюс от плагина - оптимизация под смартфоны/планшеты и т.д., в автоматическом режиме

melkozaur
На сайте с 06.04.2010
Offline
526
#6
samimages:
wp_head надо отключать

Ну там как минимум canonical полезная фича же.

А вообще я валидацию проверяю чисто для отлова всяких явных косяков. Это как Ворд для текста: вроде пишешь грамотно, но проверять надо, бывают ошибки и опечатки.

У меня один сайт на ВП где-то пару месяцев работал с двумя выводами title в head :)

C
На сайте с 07.12.2016
Offline
12
#7
Chichipidl:
Он рабочий, но не совсем, все равно остались ошибки. Блок со скриптом ушел. Но появилась новая ругань:

<link rel='dns-prefetch' href='//i0.wp.com'>
<link rel='dns-prefetch' href='//i1.wp.com'>
<link rel='dns-prefetch' href='//i2.wp.com'>


<link rel='dns-prefetch' href='//s0.wp.com' />
<link rel='dns-prefetch' href='//s.w.org' />


Получается осталось только затереть каким-то образом 5 ссылок и missoion complited.

Все из-за плагина jetpack, до него не было wp_head. Единственный плюс от плагина - оптимизация под смартфоны/планшеты и т.д., в автоматическом режиме

Неужели никто не знает как потереть или правильно прописать эти ссылки, чтобы не ругался валидатор? :) И где их вообще редактировать?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий