Проверила сайт валидатором. Теперь не получается исправить некоторые ошибки.
Ребята, поможете?
1. Валидатор ругается на "defer" в строке:
<script defer type="text/javascript" src="<?php bloginfo(‘template_url’); ?>/scripts/pngfix.js"></script>
А без "defer" скрипт не работает. Как это совместить?
2. Ошибка: XML Parsing Error: Opening and ending tag mismatch: html line 2 and head
Вот код, в котором ошибка:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 1. <html xmlns="http://www.w3.org/1999/xhtml"> 2. <head profile="http://gmpg.org/xfn/11"> ................... </head> <body>
3. Most likely, you nested tags and closed them in the wrong order. For example <p><em>…</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>…</em></p>
Another possibility is that you used an element which requires a child element that you did not include. Hence the parent element is "not finished", not complete. For instance, in HTML the <head> element must contain a <title> child element, lists (ul, ol, dl) require list items (li, or dt, dd), and so on.
Т.е. не включение обязательных элементов, в данном случае Валидатор видит вот этот код:
<ul id="tab_popular" class="tab_list">
<?php
$now = gmdate("Y-m-d H:i:s",time());
$lastmonth = gmdate("Y-m-d H:i:s",gmmktime(date("H"), date("i"), date("s"), date("m")-12,date("d"),date("Y")));
$popularposts = "SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS 'stammy' FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish' AND post_date < '$now' AND post_date > '$lastmonth' AND comment_status = 'open' GROUP BY $wpdb->comments.comment_post_ID ORDER BY stammy DESC LIMIT 4";
$posts = $wpdb->get_results($popularposts);
$popular = '';
if($posts){
foreach($posts as $post){
$post_title = stripslashes($post->post_title);
$guid = get_permalink($post->ID);
?>
<li class="popular">
<?php get_image('thumbnail','popular'); ?>
<span class='title'><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title2('', '...', true, '25') ?></a></span><br />
<span class='meta'><?php comments_popup_link('Посмотреть комментарии...'); ?></span>
</li>
<?php
}
}
?>
</ul>
Вот так:
# <!-- Tab_popular --> # <ul id="tab_popular" class="tab_list"> # # </ul>
Т.е. не видит включенных внутрь тегов <li></li>
Как переписать этот код, чтобы было валидно?
4. Ошибка: Закрывающий тег </li> при отсутствии открывающего:
#<h5>Авторизация</h5> # <form name="loginform" id="autoriz" action="http://juice.fsay.net/ajuice/wp-login.php" method="post"> # <input type="text" name="log" value="" id="login" /> # <label for="login">Логин</label><br /> # <input type="password" name="pwd" value="" id="password" /> # <label for="password">Пароль</label> # <input type="submit" name="submit" value="" id="enter" /><br /> # <input type="hidden" name="redirect_to" value="/ajuice/" /> # <p><a href="http://juice.fsay.net/ajuice/wp-login.php?action=lostpassword">Забыли пароль?</a></p> # <p> <a href="http://juice.fsay.net/ajuice/wp-login.php?action=register">Регистрация</a></li></p> # </form>
Проблема в том, что тега </li> там нет: нет в файле и, если посмотреть html-код страницы – его тоже нет.
А валидатор, почему-то, его видит.
Помогите, пожалуйста, исправить – полдня просидела над этими ошибками, пыталась и так и эдак исправить и все равно выдает ошибки.
извините за вопрос, но зачем вам сдалась эта проверка?
1. Попробуйте defer="defer"
PS Не люблю XHTML
Что-то я не понял: как Вы вылидатору php инструкции «скармливаете»?
Help Desk, да нет, конечно. Что вы так все буквально воспринимаете.
Ю.Б., спасибо. Попробую.
А как остальные ошибки исправить?
Аналогично, уж очень много проблем с версткой… У меня что-то около 50 ошибок, надо будет сесть как-нибудь и все поправить 🙂