Jalara Studio

veröffentlicht am

Im Adminbereich Plugin den Aktionslink Bearbeiten wiederherstellen

#


Im folgenden Artikel wird gezeigt, wie der seit der WordPress-Version 4.9 entfernte Aktionslink Bearbeiten (engl. action link edit) im Adminbereich Plugins wieder sichtbar gemacht werden kann:

Füge zum Hinzufügen des Links zum Plugin-Editor hierfür folgenden Code in ein seitenspezifisches Plugin ein:

function aktionslink_edit( $actions, $plugin_file,  $action_links = array(), $position = 'after' ) {
    $link = array( $key => '<a rel="nofollow" href="plugin-editor.php?file=' . $plugin_file . '">Bearbeiten</a>' ); 
    return array_merge( $actions, $link );
}
add_filter( 'plugin_action_links', 'aktionslink_edit', 10, 5 );

Möchtest du den Aktionslink Bearbeiten lieber an den Beginn der Aktionslinks stellen, ändere die Parameter in der Funktion array_merge() wie folgt: array_merge( $actions, $link ) in array_merge( $link, actions ):

Plugin-Icon hinzufügen

Eine andere Möglichkeit ist es, den Bearbeitungslink dem Action Hook 'after_plugin_row'1 zu übergeben. Dies ermöglicht einen mehr Platz zum Hinzufügen des Plugin-Bildes.

Sofern bei der Plugin-Einreichung, für das offizielle Plugin-Verzeichnis von WordPress.org, ein Icon mitgegeben wurde, würde folgender Codeschnipsel das Icon des Plugins vor dem Aktionslink Bearbeiten laden:

function plugin_edit_action_link( $plugin_file, $plugin_data, $status ){

    if ( ( ! is_multisite() || $screen->in_admin( 'network' ) ) && current_user_can( 'edit_plugins' ) && is_writable( WP_PLUGIN_DIR . '/' . $plugin_file ) ) {

        $asset_icon = 'https://ps.w.org/' . $plugin_data['TextDomain'] .'/assets/icon-128x128';

        $img = '<img width="30px" src="' . $asset_icon . '.png" onerror="this.onerror=null;this.style.opacity=0;this.src=\'' . $asset_icon . '.jpg\'">';

        $edit_action_link = '<a rel="nofollow" href="plugin-editor.php?file=' . $plugin_file . '" class="edit" aria-label="' . esc_attr( sprintf( __( 'Edit %s' ), $plugin_data['Name'] ) ) . '">' . __( 'Edit' ) . '</a>';

        echo '<tr><td class="custom">'  . $img  . '</td><td colspan="2" class="custom">'. $edit_action_link . '</td></tr>';

    }

}
add_action( 'after_plugin_row', 'plugin_edit_action_link', 10, 3 );

Styles hinzufügen

Damit der Bereich Plugin übersichtlicher ist, kann optional folgendes CSS im Quelltext des Admin-Bereiches hinzugefügt werden:

function add_style_plugin_php(){

    echo '<style>

    .update-message {
        background: transparent;
        border-left: 0;
        margin: 0;
        padding: 0 0 0 4.5em;
    }

    tr.plugin-update-tr {
        background: rgb(255, 248, 236);
    }

    .update-message,
    .plugin-install #the-list td,
    .plugins .active td,
    .plugins .active th,
    .plugins .inactive td,
    .plugins .inactive th,
    .upgrade .plugins td,
    .upgrade .plugins th,
    .plugins .plugin-update-tr .plugin-update {
        box-shadow: none;
    }

    tr:not(.update)+tr td.custom,
    td.plugin-update {
        border-bottom: 1px solid #cdcdcd;
        vertical-align: middle;
    }

    tr.active+tr td.custom:first-child {
        border-left: 4px solid #00a0d2;
    }

    tr.active+tr td.custom {
        background:rgb(247, 252, 254);
    }

    </style>';

}
add_action( 'admin_head-plugins.php', 'add_style_plugin_php' );

Anschließend würde der Bereich Plugins wie folgt aus sehen:

Credits