Categorieën toevoegen aan een aangepast berichttype in WordPress - DeLaatbusiness

Categorieën toevoegen aan een aangepast berichttype in WordPress

3 min


122
Dummy image 6 gratis internet marketing ebooks, klik hier voor download

Onlangs vroeg een van onze gebruikers ons of het mogelijk was om categorieën toe te voegen aan een aangepast berichttype dat ze hebben gemaakt. Categorieën zijn een van de ingebouwde taxonomieën in WordPress. Standaard verschijnen ze alleen voor berichten. In sommige scenario’s wilt u ze misschien ook delen met een aangepast berichttype.

In dit artikel laten we u zien hoe u categorieën kunt toevoegen aan een aangepast berichttype in WordPress. We laten u ook zien hoe u meerdere berichttypen op uw categoriearchiefpagina kunt weergeven.

Categorieën toevoegen aan een aangepast berichttype

De plug-in methode

Voor gebruikers op beginnersniveau raden we aan de invoegtoepassing Aangepaste Post Type UI te gebruiken om aangepaste berichttypen te maken.

Wanneer u de invoegtoepassing Aangepaste Post Type UI gebruikt, kunt u uw aangepaste berichttype koppelen aan elke ingebouwde of aangepaste taxonomie inclusief categorieën.

Eerst moet u de invoegtoepassing voor aangepast berichttype installeren en activeren .

Na installatie moet je CPT UI bezoeken »Posttypen toevoegen / bewerkenom een ​​nieuw aangepast berichttype te maken of om een ​​bestaand aangepast berichttype te bewerken dat je met de plug-in hebt gemaakt.

Posttypen bewerken met de CPT UI-plug-in

Blader naar beneden naar de geavanceerde opties en daar zie je de optie Gebouwde belastingnabellen . Vink het selectievakje naast categorieën aan en sla uw aangepaste berichttype op.

Schakel categorieën voor een aangepast berichttype in WordPress in

Vergeet niet op de knop Opslaan berichttype te klikken om uw instellingen op te slaan.

Handmatig categorieën aan een aangepast berichttype toevoegen

Als u uw aangepaste berichttype hebt gemaakt door de code toe te voegen aan het functie.php- bestand of een site-specifieke plug- in van het thema , moet u de code wijzigen om categorie toe te voegen als ondersteunde taxonomie.

Het enige wat u hoeft te doen is deze regel toevoegen in de argumenten voor uw CPT.

1
'taxonomies'  => array( 'category' ),

Het is waarschijnlijk dat u deze regel al in de bestaande code voor uw CPT hebt staan ​​met een andere aangepaste taxonomie erin. Als u dat doet, hoeft u alleen nog een komma toe te voegen en categorie toe te voegen, zoals deze:

1
'taxonomies'          => array('topics', 'category' ),

Hier is een volledige voorbeeldcode waarin we een aangepast berichttype hebben gemaakt met de naam films met ondersteuning voor ingebouwde categorieën.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
function custom_post_type() {
// Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
        'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
        'menu_name'           => __( 'Movies', 'twentythirteen' ),
        'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
        'all_items'           => __( 'All Movies', 'twentythirteen' ),
        'view_item'           => __( 'View Movie', 'twentythirteen' ),
        'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
        'add_new'             => __( 'Add New', 'twentythirteen' ),
        'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
        'update_item'         => __( 'Update Movie', 'twentythirteen' ),
        'search_items'        => __( 'Search Movie', 'twentythirteen' ),
        'not_found'           => __( 'Not Found', 'twentythirteen' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
    );
    
// Set other options for Custom Post Type
    
    $args = array(
        'label'               => __( 'movies', 'twentythirteen' ),
        'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
        
        // This is where we add taxonomies to our CPT
        'taxonomies'          => array( 'category' ),
    );
    
    // Registering your Custom Post Type
    register_post_type( 'movies', $args );
}
/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/
add_action( 'init', 'custom_post_type', 0 );

Meerdere berichttypes op de categoriepagina weergeven

Standaard geven de categoriepagina’s op uw WordPress-site alleen het standaard ‘Posts’-berichttype weer. Als u uw aangepaste berichttypen op dezelfde categoriepagina wilt weergeven als uw standaardberichten, moet u deze code toevoegen aan de functies.php van uw thema of een sitespecifieke plug-in.

1
2
3
4
5
6
7
8
9
10
11
12
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
  if( is_category() ) {
    $post_type = get_query_var('post_type');
    if($post_type)
        $post_type = $post_type;
    else
        $post_type = array('nav_menu_item', 'post', 'movies'); // don't forget nav_menu_item to allow menus to work!
    $query->set('post_type',$post_type);
    return $query;
    }
}

Vergeet niet om films te vervangen door de naam van uw eigen aangepaste berichttype.


Erwin@delaatbusiness.com
Dag, Hulp nodig met internet marketing of websites maken? neem dan contact op

0 Comments

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *