it-swarm.com.de

Permalinks funktionieren nicht für benutzerdefinierte Taxonomie für benutzerdefinierten Beitragstyp

Ich habe einen benutzerdefinierten Beitragstyp wie folgt registriert:

register_post_type( 'gs_business_listings',
    array(
      'labels' => array(
        'name' => __( 'Local Businesses' ),
        'singular_name' => __( 'Local Businesses' )
      ),
      'public' => true,
            'taxonomies'  => array( 'category', 'gs_business_listing_region' ),
      'has_archive' => true,
            'supports' => array('title', 'editor', 'thumbnail', 'revisions'),
            'register_meta_box_cb' => array($this,'add_meta_boxes'),
            'rewrite' => array('slug'=> apply_filters('goosesoft-coupons-archive-url', 'local-businesses'))
            )
  );

und für diesen benutzerdefinierten Beitragstyp habe ich eine benutzerdefinierte Taxonomie, die wie folgt registriert ist:

register_taxonomy(
            'gs_business_listing_region',
            'gs_business_listings',
            array(
                'labels' => array(
                    'name' => 'Regions',
                    'singular_name' => 'Region',
                ),
                'rewrite' => array( 'slug' => 'region', 'hierarchical' => true ),
                'hierarchical' => true,
                'has_archive' => true,
            )
        );

Dies funktioniert auf der Admin-Seite. Alles ist wie erwartet. Regions wird im Untermenü Local Businesses angezeigt. Ich kann die Regionen für einen bestimmten Beitrag speichern.

Permalinks funktionieren jedoch nicht für die Taxonomien. Was ich brauche, scheint ziemlich einfach zu sein und würde das sein, was ich von Standardverhalten erwarte. Die Taxonomie-URL muss www.example.com/region/a-region sein, wobei a-region eine der Taxonomien ist. Aber wenn ich zu einer solchen URL gehe, funktioniert das nicht. Noch rätselhafter ist, dass get_term_link() eine URL in genau diesem Format zurückgibt, aber ich bekomme einen 404-Fehler auf dem zurückgegebenen Link.

Was könnte mir fehlen?

1
Joshua Goossen

An meinem obigen Code war nichts auszusetzen. Ich habe die Antwort unten auf der Seite Taxonomien im Codex gefunden :

Wenn Ihre Site benutzerdefinierte Permalinks verwendet, müssen Sie Ihre Permalink-Struktur leeren, nachdem Sie Änderungen an Ihren Taxonomien vorgenommen haben. Andernfalls wird möglicherweise der Fehler "Seite nicht gefunden" angezeigt. Ihre Permalink-Struktur wird automatisch gelöscht, wenn Sie in Ihrem WordPress-Dashboard Einstellungen> Permalinks aufrufen.

In meinem Plugin hatte ich bereits flush_rewrite_rules();, die bei der Deaktivierung aufgerufen wurde, und ich hatte es mehrmals deaktiviert und reaktiviert. Die Tatsache, dass dies nicht funktionierte, warf mich für eine Schleife.

Aber sobald ich Setting > Permalinks besuchte, funktionierte alles richtig!

1
Joshua Goossen