web-dev-qa-db-ja.com

どこのバージョンを機能に使用しますか?

投稿ではなく現在のカテゴリの子カテゴリを表示するカスタムカテゴリテンプレートを作成しました。子カテゴリは、カスタムのサムネイル、タイトル、およびカテゴリの説明によって表示されます。

カテゴリの説明を定義済みの文字数にトリミングする機能を追加しましたが、どのアクションフックを使用するべきかわかりません。

これが関数です:

function trim_text($input, $length, $ellipses = true, $strip_html = true) {
    //strip tags, if desired
    if ($strip_html) {
        $input = strip_tags($input);
    }

    //no need to trim, already shorter than trim length
    if (strlen($input) <= $length) {
        return $input;
    }

    //find last space within length
    $last_space = strrpos(substr($input, 0, $length), ' ');
    $trimmed_text = substr($input, 0, $last_space);

    //add ellipses (...)
    if ($ellipses) {
        $trimmed_text .= '...';
    }

    return $trimmed_text;
}
1
jrcollins

関数の結果を使って何かをしたいので、アクションは必要ありませんが、フィルタは必要ありません。このフィルタは、予想通り、 category_description と呼ばれています(テストはしていません)。

function wpse236947_trim_category_desc ( $desc, $cat_id ) {
    // do your thing
    return $desc;
}
add_filter( 'category_description', 'wpse236947_trim_category_desc' );
1
cjbj

質問をするとき、私は wp_trim_words() 関数を知りませんでした。私のfunctions.phpファイルからカスタム関数を削除した後にしなければならなかったのは私のカスタムカテゴリテンプレートに<?php echo wp_trim_words( $child->description, 15, '...' ); ?>を追加することだけでした。

1
jrcollins