Using WordPress ‘default_content’ PHP filter

The default_content WordPress PHP filter allows you to modify the default post content initially used in the “Write Post” form.

Usage

add_filter('default_content', 'your_custom_function', 10, 2);

function your_custom_function($post_content, $post) {
  // your custom code here
  return $post_content;
}

Parameters

  • $post_content (string) – The default post content.
  • $post (WP_Post) – The post object.

More information

See WordPress Developer Resources: default_content

Examples

Add custom default content

This example sets custom default content for all new posts.

add_filter('default_content', 'set_custom_default_content', 10, 2);

function set_custom_default_content($post_content, $post) {
  $post_content = "This is my custom default content!";
  return $post_content;
}

Set different default content based on post type

This example sets custom default content for different post types.

add_filter('default_content', 'set_default_content_by_post_type', 10, 2);

function set_default_content_by_post_type($post_content, $post) {
  if ($post->post_type == 'post') {
    $post_content = "Default content for a blog post.";
  } elseif ($post->post_type == 'page') {
    $post_content = "Default content for a page.";
  }
  return $post_content;
}

Add default content based on user role

This example sets custom default content for authors and editors.

add_filter('default_content', 'set_default_content_by_user_role', 10, 2);

function set_default_content_by_user_role($post_content, $post) {
  $current_user = wp_get_current_user();
  if (in_array('author', $current_user->roles)) {
    $post_content = "Default content for an author.";
  } elseif (in_array('editor', $current_user->roles)) {
    $post_content = "Default content for an editor.";
  }
  return $post_content;
}

Set default content for a custom post type

This example sets custom default content for a custom post type called “product”.

add_filter('default_content', 'set_default_content_for_custom_post_type', 10, 2);

function set_default_content_for_custom_post_type($post_content, $post) {
  if ($post->post_type == 'product') {
    $post_content = "Default content for a product.";
  }
  return $post_content;
}

Append custom content to the default content

This example appends custom content to the default content for all new posts.

add_filter('default_content', 'append_custom_content', 10, 2);

function append_custom_content($post_content, $post) {
  $custom_content = " This is my appended custom content!";
  $post_content .= $custom_content;
  return $post_content;
}