0

カスタム関数を使用して、許可された文字数を示す引数に基づいてテキストを切り捨てています。これが私のコードです:

function bm_best_excerpt($length, $ellipsis, $content) {
$text = $content;
$text = strip_tags($text);
$text = substr($text, 0, $length);
$text = substr($text, 0, strripos($text, " "));
$text = $text.$ellipsis;
return $text;
}

どのページでも、Wordpress カスタム フィールド (テキストの文字列を含む) を取得し、次のようにこの関数を実行することで、テキストを切り詰めることができます。

<?php $excerpt = get_field('long_description'); ?>
<p><?php echo bm_best_excerpt(70, ' ... ', $excerpt); ?></p>

これはうまく機能し、 の最初の 70 文字が表示されます$excerpt。この関数を変更したいので、最初にタイトル (説明の上) の文字数をカウントしてから、残りの文字をこの説明に使用します。

これを説明するために、合計 80 文字を許可したいとします。私のRAW HTMLは以下の通りです:

これはかなり長いタイトルです

これは説明の後にいくつかの Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut Labore et dolore magna aliqua が続きます.

タイトルと説明の間の合計文字数を 80 にしたいのですが、タイトルは 35 文字なので、説明には 45 文字が残ります。

上記の関数をどのように変更して、追加のコンテンツ変数を (引数として) カウントし、次に に対して減算できるようにし$lengthますか? 関数を次のようにしたいと思います。

function bm_best_excerpt($length, $ellipsis, $content1, $content2) {

$content1タイトルと$content2説明はどこにありますか

4

1 に答える 1

0

これを試して、文字列を一緒に追加し、1 つとして処理します。

function bm_best_excerpt($length, $ellipsis, $content, $content2='') {
    // default content2 to empty string, allowing use of old method to still be valid
    $text = $content.' '.$content2; // add the second content to the end of the first
于 2012-08-14T16:23:57.003 に答える