Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make your own post format in Wordpress?

How can I create my own custom post formats?

Or how can make my custom post type make work with a function like

get_post_format();

For example i have a custom-post type with the type of "accordion" and i like to be able to use it with as content element in the loop, but only if it exists...

get_template_part( 'content', get_post_format() );

So i am looking for a function like

get_custom_post_format();

which does not exists in Wordpress.

Anybody tried something similar?

like image 447
user1766095 Avatar asked Aug 04 '13 12:08

user1766095


People also ask

Can I make a post template in WordPress?

Go back to your WordPress control panel. Click “Posts,” then click the title of a post you want to edit. Look for the new “Post Template” box, then choose your template from the drop-down menu. Click “Update” when you're done.

How do I create a custom post in WordPress without plugins?

Also, you can create new post types which are called Custom Post Types. A custom post type can be added to WordPress using register_post_type() function. It very simple and you don't need to use any plugin for that, you can register your custom post types without using Plugin.


2 Answers

I'm not sure if you're asking how to create custom post formats or custom post types so I've provided the answer to both.

If you're asking whether you can create custom post formats...

...then the answer is no. See the quote below from Post Formats on the WordPress codex:

The Post Formats feature provides a standardized list of formats that are available to all themes that support the feature. Themes are not required to support every format on the list. New formats cannot be introduced by themes or even plugins. The standardization of this list provides both compatibility between numerous themes and an avenue for external blogging tools to access this feature in a consistent fashion.

If you're asking how to create a custom post type:

The most basic example of creating (registering) your own custom post type is to add the following code to your functions.php file inside your theme.

function register_recipes_post_type() {
    $args = array( 'public' => true, 'label' => 'Recipes' );
    register_post_type( 'recipe', $args );
}
add_action( 'init', 'register_recipes_post_type' );

The above code hooks our register_recipes_post_type function to be executed when the init action is triggered by WordPress core.

Once you've added this code, if you go to your wp-admin you'll see a new menu on the left called 'Recipes', that's your new custom post type. If you add a new recipe, give it a title and some content, publish it and then try to preview it, you'll notice that you get a 404 error. After creating a new custom post type you need to go to your Settings > Permalinks in your wp-admin, just visiting that page will fix your permalinks to include the new custom post type so if you now go back and refresh the preview of the recipe you just created you'll see that it now works rather than 404s.

Now if you create a new file called single-recipe.php and put some code inside it, just put 'test' now for the purpose of seeing that it works and once you have, refresh the preview of the recipe you just created once again and you should see that it just displays the word 'test'. Using that file you can create a completely custom template to be displayed for showing single entries (posts) of that custom post type, or you could use content-recipe.php if your single.php includes a get_template_part( 'content', get_post_format() ); as you said in your original post.

Obviously your custom post type probably won't be for recipes but just update instances of recipe and recipes to whatever you want it to be.

There are also other post type specific templates you can create too for your archive of the post type etc. The above should be enough to get you started though.

There are also other arguments you can pass when registering your post type, you can see the full list here: http://codex.wordpress.org/Function_Reference/register_post_type

I hope this helps. Good luck! =)

like image 88
davidnknight Avatar answered Sep 27 '22 20:09

davidnknight


Creating New post format is not allowed currently by WordPress. you can’t define any post format apart from what WordPress allows.

Reference: 1. http://wp.tutsplus.com/tutorials/proof-using-post-formats/

like image 25
Saiful Islam Avatar answered Sep 27 '22 20:09

Saiful Islam