I am currently trying to customize the display of my posts that gets embedded on other sites.

I am able to have my custom template file through the embed_template filter but I can't successfully enqueue scripts if I am using the embed template. The filter enqueue_embed_scripts works without problem if I am not using the embed_template filter. I also tried the embed_head and embed_footer hooks but I can't get them to work as well.

This is my current code:

class Test_Embed {

    public function __construct() {

        add_action( 'enqueue_embed_scripts', array( $this, 'embed_styles' ) );
        add_filter( 'embed_template', array( $this, 'my_embed_template' ) );     


    public function embed_styles() { 

        wp_enqueue_style( 'myb-css', plugin_dir_url( dirname( dirname( __FILE__) ) ) . 'public/css/public.css', array(), '', 'all' );

   public function my_embed_template( $template ) {

        if ( 'custom-post' === get_post_type() ) {
            return dirname( __FILE__ ) . '/templates/my-template.php'; 

        return $template;



new Test_Embed;

Is there something I missed in enqueuing scripts to the custom embed template I am using?

  • It looks like you're trying to use Fancybox? Keep in mind that the embedded post is inside an iframe, and you're not going to be able to launch a lightbox outside the bounds of that post preview. Commented Nov 9, 2018 at 11:45
  • Thanks! Though it is not really my main concern for now as I am not able to enqueue and CSS and JS files. Commented Nov 9, 2018 at 11:47

1 Answer 1


It turns out that I just overlooked adding the do_action( 'embed_head' ) and do_action( 'embed_footer' ) in the template file that I have.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.