How can I load a page template from a plugin?

You can use the theme_page_templates filter to add templates to the dropdown list of page templates like this: function wpse255804_add_page_template ($templates) { $templates[‘my-custom-template.php’] = ‘My Template’; return $templates; } add_filter (‘theme_page_templates’, ‘wpse255804_add_page_template’); Now WP will be searching for my-custom-template.php in the theme directory, so you will have to redirect that to your plugin directory by … Read more

Use [embed] filter in template files

Use wp_oembed_get( $url ) instead. Make sure you echo it in your template file. So, something like this: <?php // tot necessary to set this but good if $url is coming from a function $url=”https://www.youtube.com/watch?v=jofNR_WkoCE”; // echo the function in your template to render the video echo wp_oembed_get( $url ); ?>

Enable page templates. How?

Chances are that the theme you’ve switched to has no page templates defined – they exist on a per theme basis. Here’s the Codex reference: https://wordpress.org/support/article/pages/

Any advantage to using get_header() over include(‘header.php’)?

Using generic function means throwing out layer of WP API: get_header hook would be gone; compatibility with fetching different headers by name (“header-{$name}.php”) would be gone; usage of locate_template() would be gone, which likely would destroy compatibility with child themes. You can always look at source to see what exactly function does. WordPress uses own … Read more

Change page template programmatically ?

It is possible using the template_redirect hook. Looks something like this : function language_redirect() { global $q_config; if( $q_config[‘lang’] == ‘en’ ) { include( get_template_directory() . ‘/page-template_en.php’ ); exit; } else { include( get_template_directory() . ‘/page-template_de.php’ ); exit; } } add_action( ‘template_redirect’, ‘language_redirect’ ); Code is untested, but should look like that. See my similar … Read more