Plugin Directory

Test out the new Plugin Directory and let us know what you think.


Embeds PDFs in your pages and posts, without using JS.

Basic use

To embed a PDF you've uploaded to your WordPress site's media library, simply put the URL for the attachment page in your post on its own line. The PDF will be embedded with the default settings at that location, as if it were using oEmbed.


Post short URL:


Attachment default URL:


Attachment pretty URL:


Media direct URL:


This doesn't work for PDFs hosted on other websites, or if you need to change the parameters.

Using the `[pdf]` shorttag

If the PDF isn't in your WordPress site's media library, or if you want to customize any parameters for the embed, then use the [pdf]...[/pdf] shorttag. Between the tags, you'll provide the URL for the PDF to embed. If the PDF is in your WordPress site's media library, you can either give the attachment page URL, or the URL to the PDF file directly.

The [pdf] shorttag accepts several optional parameters:

  • width - sets the width of the frame the PDF is embedded in. By default, this is set to 100%.
  • height - sets the height of the frame the PDF is embedded in. By default, this is unset.
  • title - sets the title of the PDF, for use in the fallback link text.
  • open_params - sets the PDF open params which control how the PDF file is displayed in the embed frame. These are poorly supported in browsers.


Post short URL: [pdf width="200px"]http://localhost/?p=9[/pdf]
Attachment default URL: [pdf height="500em"]http://localhost/?attachment_id=9[/pdf]
Attachment pretty URL: [pdf title="Report 1"]http://localhost/test/report1/[/pdf]
Media direct URL: [pdf]http://localhost/wp-content/uploads/2013/11/report1.pdf[/pdf]
Change PDF open params: [pdf open_params="page=10&view=Fit"]http://localhost/?p=9[/pdf]


The PDF should be embedded in the page, with the document scaled so it fills the embed frame horizontally. Unfortunately, embedding PDFs is not well-supported.

Auto-loading embedded PDFs

Unlike with images, web browsers may not automatically download and display embedded PDFs when the page is loaded. For security reasons, some users prefer not to allow the PDF plugin to run unless they trust the website the PDF comes from. This generally leaves a grey rectangle that the user may click on to allow the PDF to be downloaded and displayed.

PDF open parameters

As of v0.0.8, you can set the PDF open parameters by setting open_params in the shortcode, as shown above. This is unlikely to actually anything, since PDF open parameters are poorly supported in browsers. But you can try! Provide the parameters as a query string: page=1&view=Fit. Refer to the Adobe documentation on what parameters are available.


The PDF should be scaled/zoomed within the embed frame so that the full horizontal width of the paper fills the frame. This is not supported in Chrome's default PDF viewer, so the document will probably be scaled to 100%, which may either mean the document doesn't fill the frame, or, more likely, the document is too wide for the frame, and the right-hand side of the document is hidden.

Internet Explorer

Internet Explorer requires a PDF plugin to render embedded PDFs. Generally, that's Adobe Reader. Without such a plugin, the fallback download link will be used.

Mobile browsers

In particular, mobile browsers may show a grey box instead of the embedded PDF, and will download the file when it is clicked. Other mobile browsers might embed the PDF, but won't allow it to scroll.


Your best alternative is to not embed PDFs. PDFs are bad for many reasons: not easily indexed by search engines, not easily accessible by readers who use assistive technologies, poorly supported by web browsers (as seen above) and so on. They're just bad and you should avoid embedding PDFs if you can.

If you really can't, then you might consider using another solution like https://pdfobject.com/ or PDF.js.

Tags: ,

Requires: 3.0.1 or higher
Compatible up to: 4.5.0
Last Updated: 4 months ago
Active Installs: 10,000+


4.7 out of 5 stars


0 of 1 support threads in the last two months have been marked resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,3,3 100,1,1 100,3,3