#php #wordpress
#php #wordpress
Вопрос:
Я использую функцию, чтобы определить, какова длина моих статей (ниже). Проблема в том, что на моей индексной странице the_content, похоже, «разделен» моими <!-- more -->
тегами.
Например, моя статья имеет длину 3000 символов, но на моей индексной странице отображается только 500 символов, прежде чем появится ссылка «Подробнее». Моя функция использует 500 символов в качестве the_content вместо фактических 3000 символов. Длина отображается как короткая, хотя полные статьи считаются длинными.
Однако на полной странице статьи, где показаны все 3000 символов, функция работает нормально.
Теперь мой вопрос: есть ли альтернатива для the_content, которая ВСЕГДА использует полную статью вместо того, что в данный момент отображается на странице?
function wcount(){
ob_start();
the_content();
$content = ob_get_clean();
$length = strlen($content);
if ($length > 2000) {
return 'Long';
} else if ($length > 1000) {
return 'Medium';
} else if ($length < 1000) {
return 'Short';
}
}
Комментарии:
1. Что это за код? Это что-то из вашего шаблона или что-то, что вы предлагаете?
2. Я добавил функцию под вопросом.
3. Что вы имеете в виду? Откуда взялся этот код — это что-то, что вы написали, или что-то из вашего шаблона?
4. Код находится в моем functions.php . Я вызываю это с помощью <?php echo $wcount(); ?> в моем шаблоне. Я надеюсь, что это имеет смысл.
5. Правильно! Если вы хотите отобразить целое неотредактированное сообщение, зачем вы считаете слова? извините, что продолжаю задавать qs, просто пытаюсь получить полную картину…
Ответ №1:
Попробуйте это:
function wcount($post) {
$length = strlen($post->post_content);
if ($length > 2000) {
return 'Long';
} else if ($length > 1000) {
return 'Medium';
} else if ($length < 1000) {
return 'Short';
}
}
Затем вызовите wcount() из цикла post с чем-то вроде echo wcount($post);
Ответ №2:
Попробуйте глобальный $more; $more = 0; the_content();
Комментарии:
1. Привет, извините, я сделал это на своем телефоне, поэтому поторопился. Вы поместили это в свой шаблон, где вы хотите, чтобы отображался контент — так что вместо просто <?php the_content ?>
2. похоже, ты понял это сверху 🙂