Ändern Sie die URL von Projekten in Divi Theme

Ich benutze das Divi Theme für eine WordPress-Website. Im Moment haben alle Elemente in “Projekte benutzerdefinierter Post” die gleiche URL im folgenden Format:

www.mywebsite.com/projects/project-name

Ich habe versucht, die projects in einen dynamischeren Namen zu ändern, basierend auf der Kategorie, zu der ein Projekt gehört. Ich weiß, dass ich einfach ein paar mehr benutzerdefinierte Posts erstellen kann, aber ich bevorzuge es so zu halten.

Ich habe versucht, die Permalink-Einstellungen in /%category%/ zu ändern, aber dann haben meine Projekte mit keiner der beiden Versionen funktioniert.

Ich habe es auch auf diese Weise versucht, aber es ändert sich nur in einen neuen statischen Namen ohne die Kategorie dynamische URL:

  true, 'slug' => 'anewname', 'with_front' => false, ); } add_filter( 'et_project_posttype_rewrite_args', 'custom_post_name' ); ?> 

Gibt es einen Rat, um dies zu erreichen, oder sollte ich mich an andere benutzerdefinierte Beiträge wenden?

Beispiel:

Ich habe zwei Projekte (eine benutzerdefinierte Art von Divi-Thema) mit den Kategorien: foods und drinks . Im Moment sind die URL von ihnen die folgenden

  1. www.mydomain.com/projects/foodexample1
  2. www.mydomain.com/projects/drinkexample2

Ich möchte sie als:

  1. www.mydomain.com/foods/foodexample1
  2. www.mydomain.com/drinks/drinkexample2

Solutions Collecting From Web of "Ändern Sie die URL von Projekten in Divi Theme"

Für die Taxonomien (wie die Kategorie oder andere benutzerdefinierte Taxonomien, die für den benutzerdefinierten Posttyp mit der function register_taxonomy registriert sind), um Teil von einzelnen Postpermalinks in WordPress zu sein, können Sie den folgenden Code in Ihrer functions.php des aktuellen Themas verwenden:

 function my_post_type_link( $post_link, $post ){ if( !empty( $post->post_type ) && in_array( $post->post_type, array( 'projects' ) ) ){ $slug = $post->post_name; $post_id = $post->ID; $post_cats = get_the_terms( $post_id, 'category' ); if( !empty( $post_cats[0] ) ){ $target_category = $post_cats[0]; while( !empty( $target_category->slug ) ){ $slug = $target_category->slug . '/' . $slug; if( !empty( $target_category->parent ) ){ $target_category = get_term( $target_category->parent, 'category' ); }else{ break; } } $post_link = get_option( 'home' ) . '/'. urldecode( $slug ); } } return $post_link; } add_filter( 'post_type_link', 'my_post_type_link', 10, 2 ); function my_pre_get_posts( $q ){ if( $q->is_main_query() && !is_admin() && $q->is_single ){ $q->set( 'post_type', array_merge( array( 'post' ), array( 'projects' ) ) ); } return $q; } add_action( 'pre_get_posts', 'my_pre_get_posts', 10 ); 

Dadurch können Sie die gewünschte Ausgabe für die Permalinks Ihrer projects .