Обрезать текст в WP (php) - PullRequest
0 голосов
/ 05 марта 2019

Я новичок в php и пытаюсь обрезать строки текста, сгенерированные ('information') частью кода, показанного ниже (в моей пользовательской теме WP):

<div class="information"><?php echo get_post_meta(get_the_ID(),'information',true); ?></div> 

Каждый пост имеетразличная длина его информации (в основном, как выдержка, но извлеченная из настраиваемого поля в каждом сообщении) текста, который портит мою страницу архива / блога, так как я использую сетку из 3 столбцов.Мне нужно, чтобы длина всех постов, видимых на странице архива, была одинаковой длины, ограничив текст «информация» не более, чем, скажем, длиной в 150 символов.

Я вижу различие в этом фрагменте коданапример, взятый из WP-файла по умолчанию, но, кажется, не могу обернуть его вокруг моего собственного фрагмента кода, показанного выше, чтобы заставить его работать так, как я хочу:

<?php
et_divi_post_meta();

if ( 'on' !== et_get_option( 'divi_blog_style', 'false' ) || ( is_search() && ( 'on' === get_post_meta( get_the_ID(), '_et_pb_use_builder', true ) ) ) ) {
    truncate_post( 270 );
} else {
    the_content();
}
?>

Это то, что яхочу / поговорим о:

До:

ПОЧТА 1 Я - пост в формате WordPress с длинным текстом, который не должен быть настолько длинным, так как он устанавливает 3 колонки на странице архива.выглядишь глупо.

После:

ПОЧТА 1 Я пост в WordPress с длинным текстом, который не должен быть таким длинным ...

Как мне это сделать??

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 марта 2019
$post = "I am a wordpress post, with a long text, that should not be so long, as it makes the 3 column setup of the archive page look stupid.";

$post = mb_strimwidth($post, 0, 70, "...");

echo $post;

результат: "Я - пост в формате WordPress с длинным текстом, который не должен быть таким длинным ..."

Добавить ... если строка слишком длинная PHP

0 голосов
/ 05 марта 2019

Вы можете использовать функцию substr () php, чтобы получить часть строки.

Взгляните на этот пример функции.

function trimResult($string, $len = 150){

    if(strlen($string)> $len){
        $string = substr($string,0,$len) . "..."; // to let the user know that was truncated...
    }

    return $string;
}

ref: http://php.net/substr

Пример конкретного кода, будет лучшим решением для включения функции php в глобальный файл.

<?php
function trimResult($string, $len = 150){

    if(strlen($string)> $len){
        $string = substr($string,0,$len) . "..."; // to let the user know that was truncated...
    }

    return $string;
}
?>

<div class="information"><?php echo trimResult(get_post_meta(get_the_ID(),'information',true)); ?></div>

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...