wake-up-neo.com

deaktiviere den Permalink für den benutzerdefinierten Beitragstyp

Ich habe einen benutzerdefinierten Beitragstyp erstellt, möchte jedoch keinen Permalink. Standardmäßig wird nach Eingabe des Posttitels ein permanenter Link erstellt. Ich kann sie nicht erzeugen.

Aus meiner Lektüre geht hervor, dass ein benutzerdefinierter Beitragstyp einen Permalink hat und dass es keine Möglichkeit gibt, ihn zu deaktivieren. Gibt es eine Möglichkeit, dass ich den Ajax-Anruf verhindern kann, der den perma-Link empfängt.

3
meWantToLearn
<?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('~<div id="edit-slug-box".*</div>~Ui', '', $in);
        return $out;
    }

Dies entfernt:

  • Permalink selbst
  • Schaltfläche "Beitrag anzeigen"
  • Holen Sie sich Shortlink-Taste

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

$out = preg_replace('~<span id="sample-permalink".*</span>~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;
}
7
Max Yudin

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

Ich habe erreicht, was ich brauchte, indem ich nur das Folgende eingestellt habe, 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

3
user33056