USP Pro provides a Content field through which users can submit post content along with the post title, tags, and other information. By default, this field is displayed to the user without any predefined content, which is ideal for most cases. But if you want to include some default content, that also is possible using some custom code. This tutorial explains a couple of ways of making it happen.

Add default content via shortcode

An easy way to add custom/default content to the Post Content field (i.e., the field added via [usp_content]) is to create a shortcode that users can add manually to the form. For example, here is a simple shortcode that displays a message and some basic markup:

// usp pro add default post content
function usp_pro_example_shortcode($atts) {
	// replace this with the code you want to display
	$output = '<p><strong>Add your custom code here</strong></p>';

	return $output;
add_shortcode('usp_pro_example_shortcode', 'usp_pro_example_shortcode');

After including this code in your theme’s functions.php, the contents of the $output variable will be displayed wherever the shortcode, [usp_pro_example_shortcode] is included. So if this shortcode is added to your form’s Post Content field before submitting the form, the post will display the output on the frontend of your site.

Pros of this method:

  • Easy to implement
  • Easy to customize with any custom content
  • Displays the output automatically on the frontend
  • You can update the shortcode output at anytime

Cons of this method:

  • Requires the user to manually add the shortcode to the Post Content field
  • The shortcode output is not displayed in the Post Content field, it’s only displayed on the front-end

If this method works for you, then great. If not, most likely it’s because of the two cons mentioned above. If that’s the case, no worries, there is another way of going about it..

Add default content via JavaScript

If the shortcode method doesn’t meet your needs, you can add any default/custom content via a bit of jQuery. For example, let’s say that we want to pre-fill the content area with a paragraph of text. To do so, we can add the following code snippet:

	jQuery(document).ready(function($) {
		var content = '<p>Lorem ipsum blah blah blah..</p>';
		$('#usp-content').append(content.replace(/\&/g, '&').replace(/</g, '<').replace(/>/g, '>'));   

This snippet requires that jQuery be included on the page. To change the text/markup that is displayed, edit the <p>Lorem ipsum blah blah blah..</p> with whatever you require. Once in place, this code will display the specified content within the form’s Post Content field (i.e., within the field displayed via [usp_content]).

Important: by default, USP Pro disables any markup in the Post Content field. So, to enable the markup that you want to include, visit the Advanced ▸ Post Formatting settings and enable enable Post Formatting.

Pros of this method:

  • Easy to implement
  • Easy to customize with any custom content
  • Displays the output automatically on the frontend
  • Displays the output automatically in the Post Content field
  • Displays the output automatically in the Admin Area on the Edit Post screen

Cons of this method:

  • Requires JavaScript in order to work
  • The user can modify/delete the output before submitting the form

And of course, the best way to compare the two techniques described above is to try them out for yourself.

Add default content via the plugin settings

Last but not least, there is a USP Pro setting that enables you to define a default Post Title and Content. So check that tutorial for more information.