Deaktivieren Sie den Permalink für den benutzerdefinierten Posttyp

Ich habe einen benutzerdefinierten Post-Typ erstellt, aber ich möchte nicht, dass er einen Permalink hat. Nach dem Eingeben des Posttitels wird standardmäßig eine Perma-Verknüpfung erstellt. Ich will sie nicht erzeugen.

Aus meiner Lektüre wird gesagt, dass der benutzerdefinierte Post-Typ einen Permalink hat und es keine Möglichkeit gibt, ihn zu deaktivieren. Gibt es eine Möglichkeit, dass ich den Ajax-Anruf verhindern kann, der die Perma-Verbindung empfängt.

Solutions Collecting From Web of "Deaktivieren Sie den Permalink für den benutzerdefinierten Posttyp"

< ?php add_filter('get_sample_permalink_html', 'my_hide_permalinks'); function my_hide_permalinks($in){ global $post; if($post->post_type == 'my_post_type') $out = preg_replace('~
~Ui', '', $in); return $out; }

Dies wird entfernen:

  • Permalink selbst
  • Schaltfläche “Beitrag anzeigen”
  • Holen Sie sich die Shortlink-Schaltfläche

Wenn Sie nur Permalink entfernen möchten, ersetzen Sie die Zeile, die preg_replace mit

 $out = preg_replace('~~Ui', '', $in); 

AKTUALISIEREN:

get_sample_permalink_html hat sich in Version 4.4 geändert.

Hier ist der aktualisierte und getestete Code:

 add_filter('get_sample_permalink_html', 'my_hide_permalinks', 10, 5); function my_hide_permalinks($return, $post_id, $new_title, $new_slug, $post) { if($post->post_type == 'my_post_type') { return ''; } return $return; } 

Während die angenommene Antwort nur den Permalink zu verbergen scheint, aber immer noch generiert und zugänglich ist, können Sie den Permalink deaktivieren, indem Sie bestimmte register_post_types Parameter setzen register_post_types zugreifen können.

Ich habe erreicht, was ich brauchte, indem ich nur Folgendes einstellte, aber abhängig von Ihrem speziellen Fall möchten Sie vielleicht einige der anderen Parameter anpassen.

 'public' => false, 'show_ui' => true 

Mehr: https://wordpress.stackexchange.com/a/108658/33056