Přidání custom posts do výsledků vyhledávání

Do functions.php přidáme

add_filter( 'pre_get_posts', 'tgm_cpt_search' );
/**
* This function modifies the main WordPress query to include an array of post types instead of the default 'post' post type.
*
* @param mixed $query The original query
* @return $query The amended query
*/
function tgm_cpt_search( $query ) {
if ( $query->is_search )
$query->set( 'post_type', array( 'post', 'movies', 'products', 'portfolio' ) );
return $query;
};

Vlastní typy obsahu

Od verze 3.0 je možné ve WordPressu vytvářet vlastní typy obsahu (Custom Types) a jejich druhy, tedy kategorie a případně i štítky. Z testování pluginů, které pomohou s vytvářením a organizací těchto dalších typů, vyšel vítězně Custom Post Type UI.

Připomeňme, jak vlastně WordPress funguje a jaké má typy obsahu ve výchozím stavu. Je jich celkem pět, ale vlastního publikování se týkají dva: Post a Page, tedy v českém překladu WordPressu PříspěvekStránka. Příspěvek slouží typicky jako hlavní nástroj při vytváření obsahu webu, lze ho komentovat, je opatřen datem, možností kategorizace, štítkování, a dalšími funkcemi. Stránka pak slouží jako místo pro publikování doplňujících informací, sekce „O nás“ apod.

Vytvořením dalšího vlastního typu obsahu získáme konfigurovatelné místo pro publikování dalšího druhu informací. Vznikne například možnost přidávat stránky, které však budou mít své vlastní kategorie, své vlastní štítky a budou odlišeny i vlastní URL adresou – trvalým odkazem, který se bude lišit od základní struktury aplikované na výchozí příspěvky a stránky.

Kód s těmito funkcemi se vkládá do souboru ve složce používaného motivu vzhledu functions.php, tedy například wp-content/themes/twen­tyten/function­s.php. Plugin Custom Post Type UI to ale zařídí za vás.

Custom Post TypesPo instalaci a aktivaci pluginu se v nabídce administrace objeví blok Custom Post Types, kde si hned můžete všimnout odkazu Manage Post Types a Manage Taxonomies. V praxi tedy existují typy obsahu jako takové a dále určitá kategorizace, která je na konkrétní zvolený typ navázána.

Začneme ale od začátku.

Vytvoření typu obsahu a taxonomie

Pro vytvoření typu obsahu a jeho kategorií stačí použít odkaz Add New. Vyplnit název typu obsahu a jeho jméno, které se bude zobrazovat v administraci.

Vytvořit vlastní typ obsahu

Vytvořit vlastní typ obsahu

Kliknutím na odkaz Advanced Options se dostanete k dalšímu nastavení, kde je možné definovat další chování, například již zmíněné použití vlastní struktury trvalých odkazů, použití funkcí příspěvku (Title, Excerpt, Author atd., viz screenshot) a také napojení na ve WordPressu existující taxonomii, tedy na kategorie a štítky.

Nastavení vlastního typu obsahu

Nastavení vlastního typu obsahu

Celé nastavení je možné vložit ručně do souboru functions.php, stačí kliknout v přehledu typů obsahu (odkaz Manage Post Types) na odkaz Get Code.

Vlastní typ obsahu v administraciPo vytvoření se v nabídce administrace objeví další blok s novým typem obsahu, v případě pokusů na screenshotech má název Slovník. Jeho pozici v menu lze ovlivnit při vytváření.

Jak je vidět na obrázku vlevo, funkce jsou stejné jako u klasického příspěvku Post. Pod odkazem Slovník najdu seznam příspěvků se všemi náležitostmi, které jsem si sám zvolil, odkazem Add Slovník vytvořím nový příspěvek a na stránce pod odkazem Post Tags mohu spravovat štítky, které jsou v tomto případě společné s těmi již ve WordPressu existujícími. Novou taxonomii jsem totiž v tomto případě nevytvářel.

Dosáhl jsem však toho, že mám na webu speciální stránky pro zvláštní typ obsahu. Stránky mají štítky, můžu je zobrazovat kde chci a navíc se zvláštní URL adresou. Nepletou se mi mezi běžné příspěvky a pomocí taxonomie tak mohu na jednom webu vytvářet více oddělených částí, které spolu nemusí mít vůbec nic společného.

Použití meta_query pro uživatelský typ příspěvků

WordPress 3.1 has made querying posts by postmeta values significantly simpler. With “meta_query” parameter, you can query for posts based on numerous postmeta values.

You have a custom post type called “product” that allows you to manage your T-shirt inventory. Upon saving each product, you enter custom field values for “price”, “size”, and “sex”. You want to create a page that only displays size “S” shirts for “men” that are under “$15.00″ and you want to order these posts by price, from lowest to highest.
In order to query for these products, you can use “meta_query”.

$args = array(
        'post_type' => 'product',
        'meta_query' => array(
                array(
                        'key' => 'price',
                        'value' => '15.00',
                        'compare' => '<',
                        'type' => 'NUMERIC'
                ),
                array(
                        'key' => 'size',
                        'value' => 'S',
                        'compare' => '=',
                        'type' => 'CHAR'
                ),
                array(
                        'key' => 'sex',
                        'value' => 'men',
                        'compare' => '=',
                        'type' => 'NUMERIC'
                )
        ),
        'meta_key' => 'price',
        'orderby' => 'meta_value',
        'order' => 'ASC'
 );
$query = new WP_Query( $args );

Zdroj »

Různé typy příspěvků, taxonomie, metaboxy

Custom post types in WordPress »

A refresher on custom taxonomies »

Introducing WordPress 3 Custom Taxonomies »

"Innovative Uses of WordPress Post Types and Taxonomies ":http://wp.tutsplus.com/…-taxonomies/

Custom Fields 101: Tips, Tricks, and Hacks »

Publish Action Hook for Custom Post Types »

WordPress Custom Taxonomy Input Panels »

Revisiting Custom Post Types, Custom Taxonomies, and Permalinks »

WordPress Custom Post Type Code Generator »

Jak vytvořit vlastní metabox »

How To Create Custom Post Meta Boxes »

Using custom meta box is a great way to make custom fields more friendly to users. It helps us much to add extra information to a post.

Viz též Add A Meta Box In WordPress »

Custom Post Type UI
http://wordpress.org/…ost-type-ui/
http://webdevstudios.com/…ess-plugins/

This plugin provides an easy to use interface to create and administer custom post types in WordPress. Plugin can also create custom taxonomies. This plugin is created for WordPress 3.0.

WP Easy Post Types
http://wordpress.org/…-post-types/

This plugin lets you take advantage of the WordPress 3.0 custom post type feature, and create your own post type. The plugin allows you to add a set of fields attached to your new post type, so that in the edit and add new windows a new box will show with the fields defined. Each field added will be saved in the WordPress Database as a custom field, so that you can take advantage of the standard WordPress query rules to list your content on the page template. Not only can you create and manage new post types but you can create and manage custom fields and meta boxes associated with a particular post type. It comes with a built-in date picker field to help with post types that are date-specific. Another key feature giving this plugin loads of potential is that it allows you manage the admin display of your created post types. For instance, if you wanted a custom field to show up in the posts list screen, you can do that.

Post Type Switcher
http://wordpress.org/…pe-switcher/

A simple way to change a post type in WordPress (one at a time). Any combination is possible, even custom post types.

  • Page to Post
  • Post to Page
  • Post to Custom
  • Post to revision/attachmen­t/navigation menu is possible but turned off by default

Convert Post Types
http://wordpress.org/…-post-types/

This is a utility for converting lots of posts or pages to a custom post type (or vice versa). You can limit the conversion to posts in a single category or children of specific page. You can also assign new taxonomy terms, which will be added to the posts' existing terms.

Další informace:

A WordPress forum plugin using custom post types
The Essential Guide to WordPress 3.0 Custom Taxonomies

First Impressions of Custom Post Type
Function Reference/register post type
Custom Post Types in WordPress 2.9
How To Make WordPress An CMS With Different Post Types
Developing Post Types Plugin with WordPress
How to Set Up Custom WordPress Category Templates
Creating single post templates in WordPress
WordPress Single Post Templates