Remove ellipsis from the excerpt retrieved using get_the_excerpt()

The third field in add_filter() is priority.
Default WP hook priority is 10.
You can omit the 1 altogether, or still declare number of arguments accepting by function by passing it as 4th field.
add_filter('excerpt_more', 'change_excerpt_more', 10, 1);

OR for default:
add_filter('excerpt_more', 'change_excerpt_more');


re: questions in comments

still wondering why it wouldn’t work without having passed a priority
though

you were passing a priority

The issue you were having was that you were passing a priority, (1), and that it was possibly lower than some other things using that hook. So it may have been running fine, but just getting overwritten after it was run.

The add_filter and add_action methods have four parts:

  1. the filter or action, defined by apply_filters('name'…, and do_action('name'..., respectively.
  2. the callback function to be applied, your change_excerpt_more()
  3. the priority, an integer value that defaults to 10
  4. the number of arguments expected by the callback (made available by the do_action and apply_filter)

So in the example in your question, you have passed 1 as a priority, since it is in the third field. Assuming you meant to define the single of argument ($more), you would need to explicitly pass a priority or empty field (wordpress would use the default priority).

your code:

This:

add_filter('excerpt_more', 'change_excerpt_more', 1);

Is the same as:

add_filter('excerpt_more', 'change_excerpt_more', 1, 1);


to define the single argument

Like so:

add_filter('excerpt_more', 'change_excerpt_more', , 1);

That is the same as:

add_filter('excerpt_more', 'change_excerpt_more', 10, 1);

And since excerpt more only has one argument to pass, that is also the same as:
add_filter('excerpt_more', 'change_excerpt_more');


On Priority

Priority becomes the numerical key in an array of filters/actions applied to the hook. Sorted by these numerical indexes, they are run in that order. Since it is just an (int) used as an index, the only limitation is PHP_INT_MAX. WordPress defaults to 10, allowing for hooks to run before or after them easily. With nothing else using the hook, a default priority will run after any core usage since it was added to the hook after. To be sure you are running your hook after anything added at default, you can pass a higher priority.

But again, your issue was that your priority was too high (1) due to that value being in the third slot of the add_filter. So it was running, and then anything hooked at default (could be theme, other plugin, even core) was running after it.

To know all things being hooked with their priority, you can could print_r() $wp_filter passing it the name of the hook as the key of the array.

function filter_print() {
    global $wp_filter;
    print_r( $wp_filter['excerpt_more'] );
    die();
}
add_action( 'shutdown', 'filter_print' );

[code from Howdy_McGee on this WPSE answer]