Как справиться с пустыми элементами в WordPress

Дата публикации:Сентябрь 16, 2011

По умолчанию WordPress размещает комментарии в параграфах (HTML-тегах p). Наряду с этим, в WordPress используются различные теги шаблонов, которые могут в определенных ситуациях приводить к появлению пустых HTML-тегов:

<p></p>
<p><!-- --></p>

Пустые элементы могут возникнуть при добавлении изображений или вложенных списков, при разрывах строк и т.д. Почему необходимо бороться с пустыми элементами? Во-первых, они создают некорректную разметку. Во-вторых, они могут нарушить целостность вашего шаблона и внести неразбериху в качественный дизайн.

Универсальное решение — использование псевдо-селектора :empty для нейтрализации всех пустых HTML-элементов. Чтобы устранить все пустые параграфы (и только их), достаточно добавить следующий CSS-код:

p:empty {
	display: none;
	}

Чтобы скрыть абсолютно все пустые элементы, можно использовать следующий код:

*:empty {
	display: none;
	}

По моему мнению, такое решение должно быть включено во все стилевые таблицы по умолчанию, однако я оставлю это действие на ваше усмотрение.

http://digwp.com/2009/10/clean-up-empty-elements-css3/

Поделиться

20 комментариев

  1. HotIce says:

    Опа! Все гениальное — просто. Спасибо, что показал идею.

    • Architect Of Ruin says:

      Да не за что. Решил законспектировать вот, может в будущем пригодится)

      • Александр says:

        А нифига оно не простое и нихрена оно не работает потому как ВП выводит не просто а , что само уже не является пустым элементом. Цитирую:»Псевдокласс :empty представляет пустые элементы, иными словами такие, которые не содержат дочерних элементов, текста или пробелов. К примеру, является пустым элементов, а ,   или эге уже нет.» Так что статья хороша, но основную проблему данный способ не решает нихрена )))

  2. HotIce says:

    Я и сам такой. ;) Вот по наблюдениям — набредешь в сети на подобный "конспектик", где много мелочей, но по теме, и остаешься там жить часов на несколько.. По вордпрессу не попадалось, как-то.

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

    • Architect Of Ruin says:

      Структуру информации не менял. Меня обычно надолго не хватает) Насчет внешних ссылок долго думал, стоит ли обрубать их адреса с помощью плагинов, но потом плюнул на все: оптимизация — не главное. Пусть хоть миллиард внешних ссылок будет, я не обижусь. За рейтингами специально не гонюсь, но когда появляются — приятно) У меня тут уже такое смешение разных стилей структурирования статей, что я уже сам запутался. Где-то заголовки делал через strong, где-то через h2, где-то через h3 (это особенно видно в старых статьях), сейчас ставлю через h3 в статьях, а основных — у статей — через h2. h1 нигде не используется.

  3. HotIce says:

    Ясно. Я имел в виду, внешние ссылки на твои страницы — если меняешь структуру, то ридирект вешать нужно или пермалинк не трогать, а то уйдет в 404. Но если не делал, то то дело такое..

    Я хочу пермалинки переколбасить, оттого и спрашиваю. Но так как ленив до неприличия, то редиректы вешать — лень. ;))) В общем, пока я еще шаблоны только коверкаю в уме, там видно будет.

    • Architect Of Ruin says:

      Читал, что в версии 3.3 будет рекомендована структура пермалинков /%postname%/, которую сейчас все и так многие используют в качестве основной (у тебя она тоже применяется). Ты хочешь от нее отойти?

  4. HotIce says:

    У меня сейчас /%category%/%postname% Утомило, ибо чем дальше в категории, тем дольше индексируются. Так как я чисто поучиться вышел, то хочу сделать плоскую структуру. сайт/%postname% Возникает вопрос, как бить на рубрики. Напрашивается решение сделать независимые ленты, в которых посты в ленте связанные.. ну по тегу, например, и вывесить ссылки на ленты на главную. Реализацию через ява-скрипты видел. Так как я их не люблю использовать, то я лучше мозг поломаю себе, и заодно поломаю вордпресс. ;) Сейчас ищу способ зафигачить несколько лент на блоге. Хочу глянуть, а то боюсь что моего пхп не хватит, чтоб это резко сделать. ;)

  5. Architect Of Ruin says:

    Недавно как раз читал про несколько лент в WordPress на хабрахабре, вот посмотри, у меня в закладках даже статья осталась, может чем поможет: http://habrahabr.ru/blogs/wordpress/65452/

  6. HotIce says:

    Абыдно. Ее я уже прочитал. Собственно по этой теме она растиражирована и отрерайчена, а больше пока ничего не нашел. Жалко. Знал, что ты толковое посоветуешь чтонить, но мне этой статьи мало. Там смешанный механизм используется, пост и страница. Это я сделаю, не сложно. Я этот механизм использую — изменение шаблонов статических страниц.

    Я мож чего не догоняю, вполне может быть, что так и есть. Пока идея такая: хочу попробовать собрать условный выбор одного цикла из нескольких циклов выборки записей, на основании.. ну скажем дополнительных полей.

    Чувствую, что читать и вникать придется много. Если не окажется, что это давно предусмотрено, и все об этом знают в мире, кроме меня. ;)

  7. Architect Of Ruin says:

    Если я все правильно понял, то тебе нужно воспользоваться функцией query_posts() с параметрами meta_key и meta_value. Первый параметр — имя дополнительного поля, второй — его значение. Используется примерно так в цикле:

    &lt;?php query_posts('meta_key=key&amp;meta_value=value');  ?&gt;
     
    &lt;?php if (have_posts()) : ?&gt;
     
    &lt;?php while (have_posts()) : the_post(); ?&gt;
     
    
     
    и т.д. 
  8. HotIce says:

    Или query_posts() или get_posts() или WP_query(). Сейчас пытаюсь въехать, что именно использовать. Понял ты правильно. У меня с моим шаблоном это еще в голове не состыковалось, но если я правильно представляю, то все может получиться проще, чем я думал. А то уже мерещится переписывание всего шаблона темы. А у меня это дюже много сил отбирает. :D

    ..Поглядел. Таки всю тему переколбасить. Ну половину, похоже, придется.. ;) Вечно я себе приколы найду, на одно место. ;)))

  9. Architect Of Ruin says:

    Я теперь уже себе такую вольность позволить не могу: колбасить тему, рвать и метать — времени хватает только на добавление записей. ТрудоВыебудни, мать их :p Никак не могу удалить сраное отображение версии WordPress в теме, а там одну строку кода дописать :)))

  10. HotIce says:

    У нас цели немного разные, так что не кричи сильно. ;) Я погулять вышел, и поглядеть, что да как. У тебя все серьезно, так что какие могут быть игры с темами?

    А про строчку.. Ну, дело ж такое, где одна, там и две. ;)

  11. Architect Of Ruin says:

    Открыл ридмиху, красиво все оформлено, да. Особенно понравилась версия крупными буквами как на транспарантах в советское время. С таким флагом надо маршировать мимо стройных рядов хакеров-школьников.

    У меня цель была такая же — посмотреть, поизучать, как все работает. Только вот эксперименты мои обычно оканчивались провалом. С тех пор зарекся ничего особо не трогать, если работает, то пусть работает себе, а свое вмешательство свел к нулю. Но иной раз люди вопросы задают в комментариях, вроде как надо им что-то помочь делать. А чтобы ответить на вопросы, надо экспериментировать, без этого никак. Хорошо было бы, если б деньги лились откуда-нибудь сплошным потоком, и не надо было о них задумываться. Тогда бы и время на помощь появилось. Но я думаю, это у всех так: "я работаю, чтоб есть, чтоб работать я ем". ))

  12. HotIce says:

    Хакеры-школьники.. ;) Знаешь, читаешь статью, типа "Резко все безопасность повышаем, а то!.." и ради интереса проверяешь, что человек у себя сделал, и насколько он вопрос прорабатывал. И натыкаешься на то, что он нифига не прорабатывал, а просто "разместил объяву, а мопед не его". ;)

    Ну что значит провалом? Не по живому ж экспериментировать! Я тихонько локальную копию разношу на кусочки, потом синхронизирую. Меня технология удобной работы интересует. Вот, разозлил яндекс и гугл, синхронно.. Сделаю предельно простую для меня структуру, и буду смотреть на их поведение. Проще анализировать.

    Согласен, что если деньги льются, то на творческие вещи больше времени. У меня пару знакомых есть, хорошие деньги идут.. Работают, почти из любви к искусству, а не ради куска хлеба.

    Когда найдешь поток — свисти. Я тоже хочу, чиста для искусства. ;)

  13. Architect Of Ruin says:

    Ох, это уже целая тема для рассуждений! Конечно, когда ощущаешь себя Раскольниковым, то работать гораздо труднее. Ну да ладно, деньги — деньгами, а развитие — в стороне. Надо это как-то дифференцировать, а то труд будет не в радость. Если бы я зарабатывал созданием тем или плагинов для WordPress, то уже бы давно, чертыхаясь, убежал с такой работы. Одно дело — для себя, другое дело — для заработка. Работа должна быть вдалеке от личных предпочтений, имхо.

  14. HotIce says:

    Где ж еще поговорить за жисть, как не на техническом блоге ? ;))

    Я немного по другому, с некоторых пор, стал смотреть на вещи. Нужно заниматься тем, что любишь делать, и чем тебе интересно и нравится заниматься вне зависимости от всего. Когда есть такое занятие, то нужно подучиться, как заставить свое занятие, которое любишь, приносить доход.

    Но, это подходы к жизни. О них говорить можно вечно. ;)

  15. Алексей says:

    А можно ли удалить пустые таблицы со страницы подобными скриптами?

  16. Дмитрий says:

    Думаю, что да. Table:empty или td:empty, смотря какие элементы пустые.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.