wake-up-neo.net

Wie ändere ich die Titel-URL im Bildschirm "Beitrag bearbeiten"?

Ich habe an verschiedenen Orten gesucht und kämpfe darum, den richtigen Ort oder die richtigen Begriffe für die folgenden zu finden.

Ich verwende nur Beiträge als Beispiel.

Wenn Sie alle Beiträge in wp-admin anzeigen, erhalten Sie den Titel des Beitrags und darunter die Links Bearbeiten, Schnellbearbeitung, Papierkorb und Vorschau. Mit dem Aktions-Hook post_row_actions kann ich die Links unter dem Titel ändern, aber nicht den Link auf dem Titel.

Gibt es eine alternative Möglichkeit, den Link im Beitragstitel zu ändern, um eine andere URL zu öffnen? oder kann ich es mit dem gleichen haken ändern?

Ich entwickle den Front-End-Content-Management-Bildschirm und möchte alle Bearbeitungslinks auf die Vorderseite der Website verweisen.

Danke vielmals :)

1
Kobus Beets

Verwenden Sie get_edit_post_link filter .

add_filter('get_edit_post_link', 'get_edit_post_link_178416', 99, 3);

function get_edit_post_link_178416($link, $post_id, $context) {
    $scr = get_current_screen();

    if ($scr->id == 'edit-post' && $context == 'display') {
        return 'http://google.com';
    } else {
        return $link;
    }
}

Sie können sehen, dass es hier verwendet wird

7
mjakic

Ich entwickle den Front-End-Content-Management-Bildschirm und möchte alle Bearbeitungslinks auf die Vorderseite der Website verweisen.

Wenn Sie alle Bearbeitungslinks auf die FE verweisen möchten, sollten Sie sich für die Filterlösung get_edit_post_link entscheiden (siehe Markos Antwort). Dies deckt alle Fälle ab, in denen entweder der Core oder ein Plugin get_edit_post_link() aufruft.

Wenn Sie jedoch ein "richtiges" Front-End-Content-Management implementieren möchten, sollten Sie darüber hinausgehen. Ich habe Plugins gesehen, die die API umgehen und die Berechnung der Post-URL hart codieren. Darüber hinaus besteht immer die Möglichkeit, dass ein Benutzer die Administrator-URL eingibt und auf dem Standardbildschirm zum Bearbeiten nach dem Administrieren landet.

Ich denke, Sie sollten die Standard-URL für die Bearbeitung von Beiträgen an Ihr Frontend umleiten:

add_action(
    'admin_init',
    function()
        {
        global $pagenow;
        if($pagenow=='post.php'
          && isset($_GET['action']) && $_GET['action']=='edit'
          && isset($_GET['post']))
            {
            $post_id=$_GET['post'];
            // calculate $fe_edit_screen using $post_id
            wp_redirect($fe_edit_screen);
            exit;
            }
        },
    1
    );

Auf diese Weise werden alle an Ihr Frontend weitergeleitet, unabhängig davon, wie sie auf den Post-Edit-Bildschirm zugegriffen haben. Darüber hinaus können Sie weitere Prüfungen hinzufügen, wenn Sie beispielsweise nur Benutzer umleiten möchten, die über bestimmte Funktionen verfügen (oder nicht), oder nur für bestimmte Beitragstypen oder was auch immer.

1
geomagas