DJD Site Post Plugin (en)

DJD Site Post Banner

Auf Deutsch lesen


DJD Site Post Plugin

Author: Dirk Jarzyna
Version: 0.7 (still a Beta Release)
Compatibility: 3.0 to 3.6.1 (tested)

Use the plugin to write and publish articles from your WordPress site’s front end without leaving the site and logging into the back end. Supports guest posts.

Download DJD Site Post Plugin

Sure, a Thank You is nice, but a cold beer is better. If you find my plugin useful why don’t you buy me a fresh one?


Keep in mind that this plugin still is a beta version. If you download the plugin I would appreciate to receive your feedback.  Leave your thoughts and (hopefully not) error reports at the support forum at since I would like to avoid a mix-up of English and German language at the plugin’s web page and website.

Hey, we already have such a thing!

Not really. The idea to write the DJD Site Post plugin came to me when I was searching for a plugin that enables me to write and edit articles directly at the front end. Sure, my search produced some hits. But none of the plugins worked the way I wanted them to work. I wanted a plugin just for this task: to write and publish an article and maybe to edit this article again later on without leaving the site. A plugin such as Gravity Forms seemed to me way too complex for this task (from an admin’s point of view). Other plugins didn’t hit the mark because they didn’t support media uploads or because they worked as sidebar widgets or inside iframes only. And finally most of the plugins were out of the question because they didn’t support editing existing articles.  Maybe I didn’t search hard enough? Maybe. Anyway I started to write the plugin I wanted myself.


The DJD Site Post plugin adds a form (responsive) to your site that enables logged in users — and guests, if you wish — to write articles and publish them. This makes it the perfect plugin for user-created content.

DJD Site Post Frontend View

The plugin is translation ready, English and German is includes already.

By tweaking a couple of plugin settings the administrator can influence how the plugin works. He can select which fields to present inside the form the user sees. He can chose to display the content field only or to display an additional field for the excerpt, to display categories as select boxes or check boxes, to display a field for tag input, and to permit or prohibit media uploads. The content field uses the well-known TinyMCE editor which was made responsive to work with this plugin. The admin can select to display a minimal version, a full version (visual and html) or an html-only version of this editor. It you use this plugin inside a responsive layout you should avoid using the visual editor though. That’s because some browsers for Android don’t support all the tags used by the visual editor.

Each field presented inside the form can have a custom label. That way the admin is able to change the standard label “Excerpt” to “Introduction” if that makes sense.

If you chose to permit guest posts than you can select the user account you want guest posts published with. Of course you should select an account with minimal permissions. The admin can chose not to publish articles immediately but to store them for review instead. If he wishes, he will receive an email notification each time a new article is published (or saved).

After installing and activating the plugin you can include the post form on any page and in any article. You just have to include a simple shortcode.

Further Development

The plugin doesn’t yet include all the functionality I want it to provide. I am already working on some extensions and improvements including the following:

  • A function that enables users to delete existing posts.
  • An anti-spam mechanism for guest posts (captcha).
  • Provide different skins (CSS).


  1. Unzip
  2. Upload the files to /wp-content/plugins/djd-site-post.
  3. Activate the plugin in WordPress menu »Plugins«.
  4. Configure the plugin’s settings. To do so in in WordPress menu »Settings« click on »DJD Site Post«.
  5. Use the shortcode [djd-site-post] inside the page where you want to display the post form. Write down the page-id of that page, you´ll need it later.

DJD Site Post Settings

The plugin’s settings you find under the WordPress menu »Settings«. Click »DJD Site Post«.

DJD Site Post Main Settings View

You can configure the following settings:

Main Settings

Form Title: Your post form’s custom title. Default: Frontend Post.

Edit Page ID: The page-id of the page where you´ve entered the plugin´s shortcode. This is the page where the form will appear. This is also the page that opens when a user clicks the link »Frontpage Edit« which appears right beside WP´s regular »Edit« link somewhere below an article (depends on your theme). Example: If you enter the plugin shortcode on a page with page-id 427 you would enter 427 here.

Publish Status: The status new articles will get: Publish, Pending, Draft, Private. Default: Publish. That means that a new article will be published immediately even if it is written by a guest. If you use the plugin mostly for guest posts you should change the setting to Draft.

Post Confirmation Message: The message the user sees after successfully submitting the post. Not used in current release.

Post Failure Message: The message the user sees if an error occurred during post submission. Not used in current release.

Redirect to: The URL the user will be redirected to after submitting the post, for example This setting will be overwritten by shortcode parameters if present:  [djd-site-post success_url="url"] or [djd-site-post success_page_id="id"]. Default: The site’s home URL.

Mail on New Post: Whether or not the administrator will receive an email notification on new posts submitted from the front end. Uses the admin’s email specified in the WordPress settings. Default: Activated.

Display Login Link in Form: Displays a link to a login screen. After login the user returns to the form. If you would use WP´s regular login instead, the user would end up in your site´s backend which is most probably not what you want.

Hide WordPress Toolbar: By checking this you hide the toolbar. Even logged in users won´t see it anymore.

Hide regular WP Edit Link: This hides the »Edit« link that shows up somewhere below your articles (depending on your theme).  Use this setting if you just want to display the »Frontend Edit« link. Obviously those links only show up when the user has permission to edit posts (Admins, Editors, Authors).

Allow guests to post: Whether or not guests (users not logged in) are permitted to write and submit articles from the front end. If deactivated users not logged in will see a message asking them to login when opening the page containing the post form. Default: Deactivated.

Guest Account: The user account to publish the articles with. I recommend selecting an account with the role Contributor.

Allow Guests to select Category: If you want your guests to have the freedom to select a category themselves check this setting.

Category for Guest Posts: The default category for guest posts.

Category Settings

Display Categories: How to display categories inside the post form. Chose Droplist (select box), Check boxes or No Display. Default: Droplist.

Create New Category: Whether or not users will be able to create new categories. Default: Deactivated.

Category Order: The sort order. By name or by ID. Default: by ID.

Field Settings

Require a Title: Check this if you want to enforce titles.

Show separate Excerpt: Displays a text box to enter an excerpt. Default: Activated.

Content Field Style: The style of the editor used: Simple – Plain Text, Rich – Visual and HTML, HTML – HTML only. Standard: Rich – Visual and HTML.

Allow Media Upload: Whether or not users are permitted to upload media files (images, video). Default: Activated.

Allow Tags: Whether or not to display a field to enter tags. Default: Deactivated.

Email & Name for Guest Posts: Force guests to enter their email address and name. This information ends up as custom field data inside the article.


With the settings in this section you can change the labels used for the fields in the post form.

68 Gedanken zu “DJD Site Post Plugin (en)

  1. Hi Dirk,

    I downloaded your plugin today and it’s very nice. Thank you very much. I would like to have just one question if it’s possible.

    Is there any chance that you upgrade your plugin with options that users leave only links from websites and that you are able to see only link with picture from that site and name of the user? For example like on many social sites when you see link and picture from link.

    Thank you once more and looking forward to hear from you.


  2. Hi Dirk,

    Just one question please.

    I am trying to add your plugin for now until you do upgrade but I am having difficulties with category of posts. I would like to add guest posts on the same page where plugin is but they are showing on my home page. Is there any chance that I place guest posts on the same page where plugin is without giving users option for categories?

    Thank you,


    • Hello Ivo,

      as it is now all new posts were no category is selected will be added to the default category which is “uncategorized” if you didn’t change it. This is always true for guest posts since guests are not allowed to select a category.

      Your idea is a good one though and I will include the ability to select a specific category for guest posts in the next release I am working on right now. Expect the next release to be available beginning of next week since I have other pressing matters to finish first.

      Once you’ve selected a specific category for guest posts it’s up to you to decide on which page you want to output posts belonging to that category.

  3. Thank you so much Dirk for your reply.

    I hope in your next realese you will include option for guests to post only a link with visible headline, picture and summary from the link.

    Thank you,


  4. Hi,

    I’ve used a plugin similar to this and it works great but it does not give any confirmation message once the post has been submitted so I went in search of a new plugin. Your plugin is great but it also does the same thing.

    I’ve tried switching themes to make sure my theme isn’t causing this but nothing. When I click “send” I get no confirmation message but the post is successful as I can then see it in the dashboard area.

    Is this a known issue, any easy fixes?
    Thanks for any help.

    • Hi Kev,

      the mechanism to produce the confirmation message is in place already and I just have to activate it. Since there is a redirect to the blog page I didn’t consider this message necessary anymore so as far as I remember I commented it out in source code. Unfortunately I cannot check it immediately since I am on my way to catch a flight to the U.S. where I will stay for a week to join a conference around Ethernet’s 40th birthday. As soon as I will be back I will look into it.

  5. Hi Dirk,

    I see, in that case I will be able to find it and comment it out myself. Thank you very much for the reply.
    It was no good for me personally as it was as once the form was filled in it just went back to the same page and had no confirmation of if this was successful or not and as a user of my site I would not like that. Just a personal thing really and what you have done is a great plugin. I hope to someday be able to understand how to code like this myself.

    Thank You again

  6. Hi Dirk,

    Great plugin! But is it possible to disable the HTML function in the content area?
    Now I can choose:
    - Simple plain text
    - Rich, visual and HTML
    - HTML – html only

    I would like to use: Rich, visual only.


  7. Since this comes up quite often:

    1. Media upload works for logged-in users only.

    2. Those users need at least the role “Contributor”. You can set this as the default role for new users in WP’s dashboard under Settings->General.

    If you like, on the plugin’s settings page you can disable the WP toolbar/adminbar so the logged-in users wont see it.

  8. Hello Dirk, Love the plugin, just what I was looking for.
    I know this has already been mentioned but I would just like to say that it would be great if a confirmation message was displayed after the article has been submitted, so that the poster knows for sure that his/her post was successful.
    Also if there was a way to upload a max of 3 images and to restrict the image size to say 500KB.

  9. Hi,

    When I create a form – unless I’m logged in, I only see a red warning: “Notice: Please login or register to use this function”

    This will prevent guests from posting. My guest account is active, and has full admin rights.

    • Hello Paul,

      in the plugin’s settings panel you have to check the optin “Allow Guest to post”.

      To give the guest account full admin rights is dangerous. The contributor role is enough.

  10. Started using this plugin for one of my clients. They asked what happens to the Email Address and Name when someone submits a guest post (and it is attributed to another account? Does it get saved somewhere? I can’t see it in the email confirmations that we receive either. It would be great if we could include that information somewhere so they could contact the guest poster somehow.

    • Hi Matt,

      the email address and the name are stored together with the post as post meta data. What you do with this information is up to you so far. But I see it’s a good idea to include those information in the confirmation email. I will include this in the next release.

  11. Dear Dirk,

    Thanks a lot for this plugin. I have downloaded it some days ago and this is exactly what I was looking for.
    On the other hand, got stuck at a point and I was wondering if you could advise on how to resolve it.
    On my webpage for writing new front end posts, I have created sub menus for each categories with the shortcode [djd-site-post] on each and what I would like to achieve is that the DJD post would inherit the category automatically from the given page. So if I post from page no. 1, the assigned category would be automatically 1 without the need to select it from a drop down menu.
    I was also trying to create a database trigger that would change the category based on the page ID but for me it seems that the post does not record the page number at all.
    Could you give me some guidance please?

    Best regards,

    • Hi Peter,

      thanks for commenting. Regarding your question, the only way to do this for the time being is by altering the plugin´s code (in djd-site-post.php). I don´t have the time to try it out myself right now, but the basic idea is this: write some code that gets the category based on the page and pass the category-id to the post object.

      The plugin retrieves the category from the select list or checkbox with the following code (starting around line 591):

      if( array_key_exists('djd_site_post_select_category', $_POST)) {
      $ourCategory = array($_POST['djd_site_post_select_category']);
      if( array_key_exists('djd_site_post_checklist_category', $_POST)) {
      $ourCategory = $_POST['djd_site_post_checklist_category'];

      I think you will get your desired result if you replace this code with the following:

      $cat = get_category( get_query_var( 'cat' ) );
      $ourCategory = $cat->cat_ID;

      Try it out and tell us if it works or not.

      Regards, Dirk

      • Dear Dirk,

        Thanks a lot for the quick reply. I have tested the code but for some reason it didn’t work for me. Then I added the line
        ” ‘selected’ => (int)$selected_item, ”
        into the code below in display.php (around line 92) and it worked.
        $args = array(
        ‘orderby’ => $orderby,
        ‘order’ => ‘ASC’,
        ‘show_count’ => 0,
        ‘hide_empty’ => 0,
        ‘child_of’ => 0,
        ‘echo’ => 0,
        ‘hierarchical’ => 1,
        ‘selected’ => (int)$selected_item,
        ‘name’ => ‘djd_site_post_select_category’,
        ‘class’ => ‘class=djd_site_post_form’,
        ‘depth’ => 0,
        ‘tab_index’ => 0,
        ‘hide_if_empty’ => false

        For the $selected_item I used the extremely ugly and embarrassing way of getting the category ID from the last 2 digits of the URL of the pages:
        $selected_item = substr($actual_path['basename'],-2)

        Thanks again for your help and the plugin.
        Best regards,

  12. Hi,
    great plugin!

    I need to allow media uploads for guest user, is it possible?

    Thanks a lot..

    I hope to see your reply soon


    Filippo Santucci

  13. Guys, media uploads are only possible for logged in users. Although I do understand that the need arises sometimes I don´t want to cause security and management issues by allowing guests to do this. And frankly, to enable such a feature would require a good deal of customization of the WP media uploader or writing a new upload routine to replace the default one. I am not prepared to do this anytime soon.

  14. Dear Dirk, 2 short questions…

    How do I enable the “Redirect to” page? I’ve updated to 0.6 and adjusted at admin side but still the user posts and return to the same point without confirmation message nor redirection to success page.

    Also how to enable Viper’s Video Quicktags? If you go to Visual in the DJD sitepost at my page there are different video embed options but the buttons are not functioning.

    Thanks for your great plugin!

    • Hi, the default setting is that the user redirects to the home page (or what WP considers as the home page). To do a redirect to another page you enter the full url of the desired page in the field Redirect To on the plugin´s setting page.

      Regardig your second question: I really didn´t try to use shortcodes inside posts from the front end but I don´t see a reason why they shouldn´t work. Anyway, I don´t see the form on your site (and I don´t speak Spanish) so I cannot follow.

  15. Hi Dirk,

    This is by far the most powerful plugin I’ve seen in the Guest Post area. For my purposes, however, I would have to make some small tweaks to it that are too in-depth for a coding amateur like myself. Could I hire you to customize the plugin a little? It’d be very minor things—just changing the names of the existing custom fields, and—if possible—maybe adding a custom taxonomy in addition to (or in place of) the tags…

    Please let me know, and thanks for your help!


    • Hi Jarret,

      sorry for my late reply, I have been on the road last couple of days. Yes, generally I do custom work. Send me a short list with the changes you need and I will look over it. Chances are that you are asking for features that I am going to include anyway.

      CU, Dirk

  16. Hi there, I have installed the plugin and doing some tests however I need to find out how to Redirect To the post that has been submitted?

    I have set it up so that posts do not need approval and become live immediately so how do I set up the “Redirect To:” to go to the post that has been submitted?

    Appreciate your response.


    • Yeah, there was a problem with redirects. It should be fixed in the current version 0.7 I´ve just uploaded. In the plugin options in field »Redirect to:« just enter the full url of the page you want to redierect to. In your case it should be your blog page. If you had in mind to redirect to the post´s single page though I am afraid that´s not possible right now since I have just not coded that functionality yet. It sounds like a good idea anyway so I´ll keep it in mind for next revisions.

  17. Hi Dirk,
    I like the look of this site-post plug-in compared to a couple of others I’ve seen embedded in themes. I’ve installed and configured on the site above – as a test, it’s not actually the site I eventually want to use it on – but I’m missing something – it doesn’t appear.

    Where you say “use” the [djd-site-post] short-code, how exactly do I use it. I’ve inserted it into the relevant php file using the theme editor, but I’m guessing I need some function to call it ?


  18. Hi Dirk,

    I have finally found the plugin post from front-end DJD whish seemes to be very sweet.
    In accordance with the installation, I cannot find the form which supporsed to be appear on my page where I place the shortcode.

    Do you have any experiences to conflict with the other plugin or why the form would not appear on the page?

    If you have any further idea, please advise.

    Thanks for your regards,

    • Open the page were you want to display the form inside the editor at WP´s Backend the same way you do it when editing a page. Then you just write the shortcode [djd-site-post] at the place where you want the form to appear.

  19. Hello Dirk

    I have installed your plugin and have created a page for the short code. I then added in the code [djd-site-post] to that page. Unfortunately, when I go to that page, I do not see your Front End Post appear?

    In your instructions above you mention that you need to include the page id under the “Edit Page ID” setting. I do not see that “setting” in my settings?

    Can you tell me what I have missed? Thank you for your help.

    • Hi Kevin,

      the Page-ID you have to enter there only in case you want to edit/modify existing posts.

      What you describe sounds like a plugin conflict. Another user had the same problem and just tested it and found out that a plugin with the name Wordbooker causes this problem. I will try to narrow the problem down to see what exactly is causing the conflict with Wordbooker. There might be other plugins causing similar conflicts.

      What I know for sure is that caching plugins can cause strange effects. For instance the editor TinyMCE used in my plugin doesn’t like minified CSS and/or JavaScript.

      So what I suggest is you try to find out if there is a conflict with another plugin on your site.

  20. Pingback: Best And Free WordPress Plugin Complete Collection | Tech Continue

  21. Hi guys,

    thank you for this lovely plugin and sorry for my bad english.

    Is it possible to add default content to the editor displayed on the frontend? I got some solutions for that but when applied they only work for the backend editor. Do you have an idea?

    Thanks a lot!

  22. Hi Dirk,

    Your plugin is just about what I am looking for. Excuse my ignorance but I am not a developer buy simply a business owner trying to build a site that can achieve what I need. Is there a way to code the page where I embed your plugin to ask the user to Share their location? I am wanting to create a site that displays user’s posts onto a google map showing their locations when they made the post. So everytime they move and make a new post all their posts appear on te map in different locations. I would want to display the date and time as well. You assistance will be most apprecaited. Thanks James

    • Hi James,

      to achieve this you would need a coder. It is simple stuff really. All he would need to do is to include an additional field for location the same way I’ve included the two fields for guest user’s name and email address. That way the location information would be stored in a post’s custom field and what to do with it would be up to you or the specific theme you are using.

      • Hi Dirk,

        Thanks for responding so quickly. Ok so the form would ask the user to provide his location details? What if he does not know what they are? Sometimes when I access web pages I get a Pop-up that asks me if I am willing to share my location. I assume that when I click this it automatically sends my location details, from my gps enabled phone to the website. I am interested in getting my webpage to do te same. Thanks

  23. Hello,

    I have the following error when the proposed site does not comply with the rules imposed:

    Fatal error: Uncaught exception 'Exception' with message 'votre site est refusé car non conforme' in /home/users5/l/lebricabroc/www/wp-content/plugins/djd-site-post/djd-site-post.php:595 Stack trace: #0 [internal function]: DjdSitePost->process_site_post_form('') #1 /home/users5/l/lebricabroc/www/wp-includes/plugin.php(429): call_user_func_array(Array, Array) #2 /home/users5/l/lebricabroc/www/wp-admin/admin-ajax.php(92): do_action('wp_ajax_nopriv_...') #3 {main} thrown in /home/users5/l/lebricabroc/www/wp-content/plugins/djd-site-post/djd-site-post.php on line 595

    thank you

      • Hello, seems like the plugin you mentioned interferes heavily with posts submitted. I don´t know if it does so before posts are written to the database. If so this might cause the error. WyPiekacz hasn’t been updated for over two years now, so it might be outdated a bit. If I find some time I will look into WyPiekacz to see if I can find what might causes the conflict.

        BTW: Here is not the ideal place to ask support questions. next time please go to the support forum at the WordPress Org website:

  24. Hello Sir, Very nice work. Excellent function. Except for; ” a picture tells a thousand words …” (so to speak). For user to upload picture, you have said – they need to login first. Well, this brings them to the backend, which we are trying to avoid. Can you implement this open-source product? … (into your design?) …

    • The login doesn’t always bring users to the backend. It depends on how you’ve setup your site. The login function that is available via the plugin’s form brings users back to the form after login. On top of that you can disable the WP toolbar in the plugin’s settings. If that is not enough you will find plugins and/or code snippets that prevent users ever reaching the backend.

  25. Hey I’m trying to set the category to a specific category e.g. category ‘updates’, ID ’19′ for logged in users.

    Any way I can do this by altering the plugin?

  26. Hi :)
    How can I redirect to post page after posting the content? You know… after click on Submit button redirect to the page with posts?

  27. Hey Dirk,
    I am quite excited about this plugin. One thing I just noticed is that when I am logged in and post something the resulting post automatically accepts comments. For the rest of the site I do not allow comments, but this overrides it.
    For non-logged in people that is not an issue as they will be pending for approval. But I have to remember to change that every time.
    Is there any chance to offer that as a setting or maybe I can change it in the code?

    • Hi Debby, since a guest user is not registered we cannot show his name as author. You should create a new user with the minimal required rights and then inside the plugin options select this user account for guest posts – do not use the admin account for this! This way at least the name of the guest account will show up as author. To display a short teaser (excerpt) is something your theme has to do, not the plugin. Hope this helps…

  28. thanks for the info .. wow .. i have been trying to update and the form is all messed up now .. i have not to show fields and they are showing anyway :<(
    very frustrating to a newbie …

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>