Проблемы с тегом "More" в WordPress

8 дек. 2010 г., 12:57:34
Просмотры: 3.09K
Голосов: 2

Я создал свой собственный тип записи, используя этот туториал: http://thinkvitamin.com/code/create-your-first-wordpress-custom-post-type/

Всё работает нормально, но у меня возникла серьёзная проблема с функцией "Читать далее".

Как мы все знаем, <!--more--> добавляет <span id="more-[number]" /> в начале скрытого абзаца. В моём случае этот span ломает всю разметку.

Посмотрите сами:

    <p>Это обычный абзац, который должен быть виден везде.</p>

    <!-- всё ниже доступно только после нажатия кнопки "Читать далее..." -->

    <p><span id="more-[postnumber] />Это абзац "далее", который будет отображаться только на странице записи.</p>
    <p>И ещё один абзац "далее".</p>

В моём случае создаётся такой странный код:

  <p>Это обычный абзац, который должен быть виден везде.<br/>
  <span id="more-[postnumber] /></br>Это абзац "далее", который будет отображаться только на странице записи.</p>
  <p>И ещё один абзац "далее".</p>

Таким образом, функция "далее" в моём случае даже не работает и не показывает кнопку "Читать далее".

Какие-нибудь идеи?

[РЕДАКТИРОВАНО]

Хорошо, я добавил пробелы до и после тега <!--more-->, так что запись теперь выглядит так в админке:

Это обычный абзац, который должен быть виден везде.

<!--more-->

Это абзац "далее", который будет отображаться только на странице записи.

И ещё один абзац "далее".

И он выводит весь текст, потому что span получает дополнительный абзац (почему? :O):

<p>Это обычный абзац, который должен быть виден везде.</p>
<p><span id="more-[postnumber] /></p> <!-- Я считаю, что он не должен быть в дополнительном <p> теге, и в этом вся проблема -->
<p>Это абзац "далее", который будет отображаться только на странице записи.</p>
<p>И ещё один абзац "далее".</p>

И насчёт кнопки "далее" - я к сожалению использую the_content...

И ничего не помогает, когда я указываю 'TRUE' как второй параметр - the_content('Читать далее...', TRUE); - это скрывает всё ДО тега more (так что показывает два последних абзаца и скрывает первый).

Что это? :O

2
Комментарии

Для протокола: больше span должен находиться в отдельном теге p. Это задумано и нормально. Когда вы говорите исчезает, вы имеете в виду, что элементы пропадают из исходного кода страницы? Может быть, это проблема с CSS?

Rarst Rarst
8 дек. 2010 г. 18:24:32

Нет, это не так. Я проверил множество пользовательских тем с пользовательскими названиями записей и заметил, что КАЖДАЯ ИЗ НИХ использует функцию the_excerpt() вместо the_content. Поэтому я решил переключиться и добавить ссылку a href с постоянной ссылкой ниже. И это работает. Я считаю, что что-то не так с WordPress.

Wordpressor Wordpressor
8 дек. 2010 г. 19:15:11
Все ответы на вопрос 2
1

Итак, две отдельные проблемы — ссылки не отображаются и некорректная разметка?

Что касается ссылок — проверьте, использует ли ваш шаблон функцию the_content(), так как функционал more не отображает ссылки после the_excerpt().

По поводу разметки — я заметил, что вокруг тега more должны быть пустые строки, чтобы всё работало корректно.

Например, такая разметка может вызвать проблемы:

Текст до.
<!--more-->
Текст после.

А вот такой вариант работает нормально:

Текст до.

<!--more-->

Текст после.
8 дек. 2010 г. 13:20:31
Комментарии

Ничего не работает. Спасибо, что попытались помочь. Я обновлю первый пост и объясню, что уже пробовал...

Wordpressor Wordpressor
8 дек. 2010 г. 17:48:22
0

Быстрый тег не будет работать и игнорируется в шаблонах, таких как single.php, где отображается только одна запись. http://codex.wordpress.org/Function_Reference/the_content

10 февр. 2011 г. 21:10:09