WordPress.org

Ready to get started?Download WordPress

Forums

Auto insert shortcode to content. (6 posts)

  1. cubryto
    Member
    Posted 1 year ago #

    Hi,
    I wonder if there is a way to automatically insert a shortcode to post content when pressing publish button. For example, the post is

    This is a test post!

    After I press publish, the post content (in the database) will be

    This is a [shortcode] test [/shortcode] post!
    This rule applies to every post that I publish.

  2. I'm not aware of a plugin to do that but it may be easier to just filter the content and apply the shortcode that way. Are you trying to implement a shortcode on specific word or words?

    Filtering the_content with your own small plugin may be the way to go.

    http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content

  3. bcworkz
    Member
    Posted 1 year ago #

    Alternately, if you really want the shortcode to be part of the post stored in the DB, you could hook 'wp_insert_post_data' and insert the shortcode into the proper spot. You would have to verify this hasn't already been done, as this filter fires on updates and other actions besides post publish. Thus maybe not as easily done.

    Often more than one way to do something!

  4. cubryto
    Member
    Posted 1 year ago #

    Thank you. I didn't know I can filter the content. I solved by filter the content like Jan request. Now I'm stuck the word count for post. Currently I have a custom field called 'wordcount' to store the word counter using this code:
    function add_custom_field_automatically($post_ID) {
    global $wpdb;
    global $post;
    $content = $post->post_content;
    $wordcount = sizeof(explode(" ", $content)); //Ya this is an estimation word counter
    update_post_meta($post_ID, 'wordcount',$wordcount, true);
    }
    The problem is that $post->post_content has no content when pressing 'publish' button. Is there anyway that I can get the pre saved content?

    To people who is looking for an answer for my previous situation , I use this function:
    function function-to-modify-content($content){
    //filter the content
    return $content;
    }
    add_filter('content_save_pre','function-to-modify-content');

  5. bcworkz
    Member
    Posted 1 year ago #

    That would be the 'wp_insert_post_data' filter. The good part is the same filter will redo the word count if the post is edited.

  6. tazogamer
    Member
    Posted 1 year ago #

    automatically insert specific text into post.
    to do this, insert one of the following codes into functions.php:

    1)
    function add_before_content($content) {
    if ( 'page' == $post->post_type ) return $content .'Default page content.';
    if ( 'post' == $post->post_type ) return $content .'Default post content.';
    }
    add_filter('the_content', add_before_content);

    2)

    function add_before_content($content) {
    return 'Default Message'.$content;
    }
    add_action('publish_post',add_before_content);
    add_action('update_post',add_before_content);
    add_filter('the_content', add_before_content);

Topic Closed

This topic has been closed to new replies.

About this Topic

Tags

No tags yet.