WordPress does not make this easy when you want to publish a widget to just one (or a few) pages because there is no built-in function for that kind of capability, so you have to use plugins. There are a few plugins you can use, but the one that I prefer myself is called Dynamic Widgets. What this plugin does, is add a small text link at the bottom of every widget that either shows as “Static” or “Dynamic”. Static means it’s not assigned to any location yet, while Dynamic means it is.
This plugin has a lot of options for you to choose where you want a widget to be published, so you will want to refer to the plugin’s documentation and the developer’s website. Expect a bit of a learning curve because the capability of this plugin is extensive, but will help you layout your site’s widgets precisely.
UPDATE: You may want to first check out a plugin called Display Widgets as some users have said it’s easier to use.
Install Dynamic Widgets
- Go to Plugins >> Add New
- Search for “Dynamic Widgets“
- Click install and activate it
Publish a Widget to a Page
- Go to Appearance >> Widgets
- Drag a widget into a widget position, for example, Page Right Sidebar
- Click Save on your widget
- On the bottom of the widget, click on the text link labeled as “Static“
- At the very top, click on the text link “Set all options to ‘No’ (Except overriding options like Role, Date, etc.)”
- Further below, click on the tab dropdown “Pages”
- Where it says “Show widget default on static pages?“, select No
- On the list of pages, choose the page you want this widget to show only by checking the box next to it.
- Click Save. Now your widget should say “Dynamic” at the bottom.