函数使用哪个操作钩子?

时间:2016-08-24 作者:jrcollins

我创建了一个自定义类别模板来显示当前类别的子类别,而不是帖子。子类别通过自定义缩略图、标题和类别描述显示。

我添加了一个函数,可以将类别描述修剪为预定义的字符数,但我不确定要使用哪个动作挂钩。

功能如下:

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;
}

2 个回复
SO网友:cjbj

你不需要一个动作,而是一个过滤器,因为你想对函数的结果做些什么。可以预见,过滤器被称为category_description 以这种方式(虽然没有测试):

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

SO网友:jrcollins

当我问这个问题时,我不知道wp_trim_words() 函数,它完全符合我的要求。从“我的函数”中删除自定义函数后。php文件我所要做的就是添加<?php echo wp_trim_words( $child->description, 15, \'...\' ); ?> 到我的自定义类别模板。

相关推荐

两个函数具有不同的参数和Add_Actions,但代码相同

我觉得这很简单。我有两个包含相同代码的函数,但需要有不同的add\\u操作和参数。必须有一种方法可以做到这一点,所以当我想添加更多代码时,我不会在两者之间复制和粘贴,而且你不应该复制代码。我错过了什么?一个用于ACF并在更新帖子类型时激发,另一个用于Admin列,该列在内联编辑相同的帖子类型时激发相同的操作。如果有帮助的话,我会把它们放在插件文件中。 function acp_editing_saved_usage1( AC\\Column $column, $post_id, $value ) {