I think you’re looking for this dynamic filter within the get_query_template()
function:
/**
* Filter the path of the queried template by type.
*
* The dynamic portion of the hook name, `$type`, refers to the filename -- minus the file
* extension and any non-alphanumeric characters delimiting words -- of the file to load.
* This hook also applies to various types of files loaded as part of the Template Hierarchy.
*
* Possible values for `$type` include: 'index', '404', 'archive', 'author', 'category', 'tag', 'taxonomy', 'date',
* 'home', 'front_page', 'page', 'paged', 'search', 'single', 'singular', and 'attachment'.
*
* @since 1.5.0
*
* @param string $template Path to the template. See locate_template().
*/
return apply_filters( "{$type}_template", $template );
where in your case the type is taxonomy
.
You mentioned your own custom plugin. So if you want to override the template for your hello-cat
term of your custom taxonomy, with a custom template within your plugin, then you can try the following within your root plugin file:
add_filter( 'taxonomy_template', function( $template )
{
$mytemplate = __DIR__ . '/templates/custom.php';
if( is_tax( 'some-custom-tax-slug', 'hello-cat' ) && is_readable( $mytemplate ) )
$template = $mytemplate;
return $template;
} );
where the custom template is placed within your custom plugin folder, like:
/wp-content/plugins/my-plugin/templates/custom.php