Bricks Seitenlink in WP Seitenübersicht anpassen

Wenn ein User in der Seitenübersicht auf eine Seite klickt, öffnet sich standardmässig der Block Editor. Wenn Kunden Ihre Seite mit Bricks bearbeiten wollen, können Sie entweder in der Seitenübersicht über eine Seite hovern und dann „Mit Bricks bearbeiten“ anklicken, oder sie klicken auf die Seite und klicken dann oberhalb des Block Editors auf den Button „Mit Bricks bearbeiten“.

Diesen Umweg braucht es nicht. Das Snippet macht folgendes:

Wenn die User Rolle nicht Administrator ist und die Seitenübersicht ausgewählt ist, dann ändert es den Link der Seite so, dass beim Klick darauf automatisch der Bricks Builder geöffnet wird.

Für Admin User funktioniert alles wie vorher. Das ist insofern nützlich, als dass bestimmte SEO-Einstellungen pro Seite nur in den Meta Boxen vom Block Editor angepasst werden können.

PHP
function custom_edit_post_link($link, $post_id, $context)
{
    // If the user is an editor, return the default link
    if (current_user_can("administrator")) {
        return $link;
    }

    // Check if the post type is 'page'
    if (get_post_type($post_id) === "page") {
        // Get the post status
        $post_status = get_post_status($post_id);

        // Check if the post is unpublished
        if (in_array($post_status, ['draft', 'pending', 'auto-draft'])) {
            // Construct a URL with the post ID
            $permalink = home_url('?page_id=' . $post_id);
        } else {
            // For published posts, get the regular permalink
            $permalink = get_permalink($post_id);
        }

        // If a valid permalink exists, modify it based on the post status
        if ($permalink) {
            // If the post is draft, change the prefix for the "bricks" parameter
            if ($post_status === 'draft' && strpos($permalink, '?') !== false) {
                return $permalink . "&bricks=run";
            } else {
                return $permalink . "?bricks=run";
            }
        }
    }
    return $link;
}
add_filter("get_edit_post_link", "custom_edit_post_link", 10, 3);