Skip to Content


Limit strings to a number of words.

PHP August 30, 2017


nebula()->string_limit_words($string, $word_limit)


(Required) (String) The string to shorten
Default: None

(Required) (Integer) The maximum number of words
Default: None

Request or provide clarification »

Was this page helpful? Yes No

    A feedback message is required to submit this form.

    Please check that you have entered a valid email address.

    Enter your email address if you would like a response.

    Thank you for your feedback!

    Source File

    Located in /libs/Utilities/Utilities.php on line 803.

    1 Hook

    Find these filters and actions in the source code below to hook into them. Use do_action() and add_filter() in your functions file or plugin.

    Need a new filter hook? Request one here.

    This function has no action hooks available. Request one?

            public function string_limit_words($string, $word_limit){
                $override = apply_filters('pre_string_limit_words', null, $string, $word_limit);
                if ( isset($override) ){return $override;}
                $limited['text'] = $string;
                $limited['is_limited'] = false;
                $words = array_slice(array_filter(explode(' ', trim($string))), 0, $word_limit); //Create an array of words after trimming whitespace and removing empty array items. Then keep only the first words up to the requested limit.
                if ( count($words) >= $word_limit ){
                    $limited['text'] = implode(' ', $words);
                    $limited['is_limited'] = true;
                return $limited;


    To override this PHP function, use this hook in your child theme or plugin ("my_custom" can be changed):

    add_filter('pre_string_limit_words', 'my_custom_string_limit_words', 10, 3); //The last integer must be 1 more than the actual parameters
    function my_custom_string_limit_words($null, $string, $word_limit){ //$null is required, but can be ignored
        //Write your own code here
        return true; //Return true to prevent the original function from running afterwords

    You can completely disable this PHP function with a single line actions:

     add_filter('pre_string_limit_words', '__return_false');