plugins - how does wp.media javascript library work?

admin2025-03-20  2

I'm building a custom dashboard and I'd like to add a feature which allows a user to upload an image.

However, by calling wp.media() (with a title, button & multiple args) javascript throws an error this.activateMode is not a function - Shouldn't it pop-up the media view/modal?

For clarifying, I'm calling wp.media in a button's click event callback function. And yes, I load all the necessary styles/scripts by calling wp_enqueue_media(); and I do see them in the page's source code. And wp.media is not undefined, so it is loaded.

WordPress has very limited dev docs overall, so I'm not sure what dependencies wp.media has/needs in order to work properly. I dove into the source code but couldn't find an answer. Seems like it should work properly by simply calling the wp.media

So.... What I'm missing?

Sure I could build my own modal for media CRUD actions by using WP REST API but it would be a time-consuming process.

I'm building a custom dashboard and I'd like to add a feature which allows a user to upload an image.

However, by calling wp.media() (with a title, button & multiple args) javascript throws an error this.activateMode is not a function - Shouldn't it pop-up the media view/modal?

For clarifying, I'm calling wp.media in a button's click event callback function. And yes, I load all the necessary styles/scripts by calling wp_enqueue_media(); and I do see them in the page's source code. And wp.media is not undefined, so it is loaded.

WordPress has very limited dev docs overall, so I'm not sure what dependencies wp.media has/needs in order to work properly. I dove into the source code but couldn't find an answer. Seems like it should work properly by simply calling the wp.media

So.... What I'm missing?

Sure I could build my own modal for media CRUD actions by using WP REST API but it would be a time-consuming process.

Share Improve this question asked Jan 7, 2019 at 8:34 Cecily MillerCecily Miller 1354 bronze badges 1
  • Do you have a live version to take a look at? Have you checked that you're load order is correct? – Steven Commented Jun 4, 2019 at 6:53
Add a comment  | 

1 Answer 1

Reset to default 2

To solve " TypeError: this.activateMode is not a function " error, add lodash as an external in your webpack config file.

externals: {
   'lodash': 'lodash'
}
转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1742406886a212148.html

最新回复(0)