it-swarm.com.de

Change the slug of the registrierten eigenen Beitragstyps in the undergeordneten Topic

Ich habe einen benutzerdefinierten Beitragstyp, der von meinem übergeordneten Thema in meinem untergeordneten Thema registriert wurde, mit dieser Methode erfolgreich umbenannt. Das Problem ist, dass sich meine Permalinks nicht geändert haben. Wenn ich portfolio in homepage ändere und die Permalink-Struktur /%category%/%postname%/ verwende, sehen meine URLs immer noch so aus wie mysite.com/ portfolio / page/anstelle von mysite.com/ homepage / page /.

dies ist der Code, mit dem ich meine CPT ändere:

add_action( 'wp_loaded', 'wpse_19240_change_home_labels', 20 );

function wpse_19240_change_home_labels()
{
global $wp_post_types;
$b = 'portfolio';

if ( empty ( $wp_post_types[ $b ] )
    or ! is_object( $wp_post_types[ $b ] )
    or empty ( $wp_post_types[ $b ]->labels )
    )
    return;

$wp_post_types[ $b ]->labels->name               = 'Sliders';
$wp_post_types[ $b ]->labels->singular_name      = 'Slider';
$wp_post_types[ $b ]->labels->add_new_item       = 'Add New Slider';
$wp_post_types[ $b ]->labels->edit_item          = 'Edit Slider';
$wp_post_types[ $b ]->labels->new_item           = 'New Slider';
$wp_post_types[ $b ]->labels->view_item          = 'View Slider';
$wp_post_types[ $b ]->labels->search_items       = 'Search Sliders';
$wp_post_types[ $b ]->labels->not_found          = 'No sliders found.';
$wp_post_types[ $b ]->labels->not_found_in_trash = 'No sliders found in Trash.';
$wp_post_types[ $b ]->labels->menu_name          = 'Homepage Sliders';
$wp_post_types[ $b ]->labels->all_items          = 'All Sliders';
$wp_post_types[ $b ]->labels->add_new            = 'Add New Slider';
$wp_post_types[ $b ]->labels->name_admin_bar     = 'Slider';
}

Ich habe den Slug erfolgreich geändert mit:

function change_slug_of_post_type_portfolio() {
    register_post_type('portfolio', array('rewrite' => array ('slug' => 'homepage',)));
}
add_action('init', 'change_slug_of_post_type_portfolio', 20);

Jetzt wird jedoch ein 404-Fehler angezeigt, wenn ich zu der vom System generierten Seite navigiere: mysite.com/homepage/page/

Ich habe darauf geachtet, eine single-homepage.php zu erstellen, und ich habe versucht, flush_rewrite_rules(); hinzuzufügen, wie in diesem Beitrag empfohlen, aber ohne Erfolg.

4
Heather

mit deinem Code definierst du dein CPT komplett neu, anstatt nur den Slug zu modifizieren, vielleicht ändert dies den öffentlichen Zugriff

versuche dies :

$args = get_post_type_object("portfolio");
$args->rewrite["slug"] = "homepage";
register_post_type($args->name, $args);
6
mmm