embed - How to make enqueue_embed_scripts work with the embed_template filter

admin2025-06-06  5

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?

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?

Share Improve this question edited Nov 9, 2018 at 11:46 Jeda Dragon asked Nov 9, 2018 at 11:33 Jeda DragonJeda Dragon 1237 bronze badges 2
  • 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. – Jacob Peattie 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. – Jeda Dragon Commented Nov 9, 2018 at 11:47
Add a comment  | 

1 Answer 1

Reset to default 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.

Teehee!

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749195227a317161.html

最新回复(0)