• Gelöst hupe13

    (@hupe13)


    Gibt es ein Plugin, mit welchem man die Liste der Plugins (/wp-admin/plugins.php) einschränken kann? Also quasi die installierten Plugins in Kategorien einordnen oder filtern und dies mit einem Klick aufrufen können. Es gibt ja auf der Plugin-Seite die „Suche“, aber jedesmal das Wort einzugeben, nervt. Danke!

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)
  • Hallo,
    das ist in der Tat eine interessante Fragestellung. Daher habe ich gerade mit ChatGPT darüber diskutiert 😉
    ChatGPT hat mir folgenden Code angeboten, der tatsächlich auf einer lokalen Website funktioniert.
    Der Code ist als Anregung oder Ansatz zu verstehen und ich gebe natürlich keinerlei Gewährleistung, dass das (immer) sauber funktioniert.

    Der Code gehört in die functions.php des Child Themes

    function add_dynamic_plugin_filters() {
        ?>
        <script>
            document.addEventListener('DOMContentLoaded', function() {
                let filterContainer = document.querySelector('.wp-filter');
                if (!filterContainer) return;
    
                // Kategorien definieren
                let categories = {
                    "performance": "Performance",
                    "security": "Sicherheit",
                    "seo": "SEO",
                    "backup": "Backup",
                    "design": "Design",
                    "ecommerce": "E-Commerce"
                };
    
                // Kategorie-Dropdown erstellen
                let categorySelect = document.createElement('select');
                categorySelect.id = 'plugin-category-filter';
                categorySelect.innerHTML = <code><option value=&quot;&quot;>- Kategorie wählen -</option></code>;
    
                Object.keys(categories).forEach(key => {
                    let option = document.createElement('option');
                    option.value = key;
                    option.textContent = categories[key];
                    categorySelect.appendChild(option);
                });
    
                // Schlagwort-Dropdown erstellen
                let tagSelect = document.createElement('select');
                tagSelect.id = 'plugin-tag-filter';
                tagSelect.innerHTML = <code><option value=&quot;&quot;>- Schlagwort wählen -</option></code>;
    
                // Dropdowns einfügen
                filterContainer.appendChild(categorySelect);
                filterContainer.appendChild(tagSelect);
    
                // Plugin-Tags aus der WP API abrufen
                fetch('https://api.wordpress.org/plugins/info/1.2/?action=query_plugins')
                    .then(response => response.json())
                    .then(data => {
                        let tags = new Set();
    
                        data.plugins.forEach(plugin => {
                            if (plugin.tags) {
                                Object.keys(plugin.tags).forEach(tag => tags.add(tag));
                            }
                        });
    
                        tags.forEach(tag => {
                            let option = document.createElement('option');
                            option.value = tag;
                            option.textContent = tag.charAt(0).toUpperCase() + tag.slice(1);
                            tagSelect.appendChild(option);
                        });
                    })
                    .catch(error => console.error('Fehler beim Laden der Plugin-Tags:', error));
    
                // Event-Listener für beide Filter
                function updateSearch() {
                    let searchBox = document.getElementById('search-plugins');
                    if (searchBox) {
                        let category = categorySelect.value ? categorySelect.value + " " : "";
                        let tag = tagSelect.value ? tagSelect.value : "";
                        searchBox.value = category + tag;
                        searchBox.dispatchEvent(new Event('input'));
                    }
                }
    
                categorySelect.addEventListener('change', updateSearch);
                tagSelect.addEventListener('change', updateSearch);
            });
        </script>
        <?php
    }
    add_action('admin_footer', 'add_dynamic_plugin_filters');
    

    Rechts oben in der Leiste oberhalb der Plugins sieht man dann „Kategorie wählen“ und „Schlagwort wählen“.
    Evtl. lohnt es sich dazu auch ein Ticket für den Core zu erstellen.

    Viele Grüße
    Hans-Gerd

    Thread-Starter hupe13

    (@hupe13)

    Das sollte man wirklich einreichen. Die Suche im Pluginverzeichnis ist katastrophal. Der Code ist aber für /wp-admin/plugin-install.php. Ich möchte aber meine installierten Plugins in der Liste nach Kriterien ordnen. So ähnlich wie bei „Aktiviert“, „Inaktiv“, „Kürzlich aktiv“, usw. und ich dachte, da gibt es schon was …

    aha, das war mic nicht klar. Ich hatte gedacht, du suchst was für Plugins, die du installieren möchtest. Denn da finde ich die Suche in der Tat sehr beschwerlich.

    Vielleicht hilft dir https://wordpress.org/plugins/plugin-organizer/ oder https://wordpress.org/plugins/codepress-admin-columns/.

    Beide Plugins kenne ich nicht und kann daher nichts dazu sagen.

    Moderator La Geek

    (@la-geek)

    @hupe13

    Willst du deine Favoriten auf wordpress.org/plugins filtern oder die Plugins, die auf deiner WordPress-Website installiert sind? Falls letzteres: Über wie viele Plugins reden wir? 😀

    Thread-Starter hupe13

    (@hupe13)

    Admin Columns verwende ich schon lange. Es ist sehr zu empfehlen, wenn man mehr als die Standardspalten auf der Übersichtsseite von Beiträgen bzw. Seiten haben möchte. Aber die Anzeige der Plugins kann es nicht anpassen. In der freien Version jedenfalls, ob in der Pro Version weiß ich nicht.

    Der Plugin Organizer hat eine ähnliche Funktion dabei, wie ich suche. Die ist aber nicht sehr flexibel. Ich suche mal weiter.

    Thread-Starter hupe13

    (@hupe13)

    @la-geek: Ich möchte meine installierten Plugins filtern. Seite: /wp-admin/plugins.php. Es sind Größenordnung 40 – 50. Eigentlich will ich „nur“ mit einem Klick die URL /wp-admin/plugins.php?s=leaflet&plugin_status=all aufrufen, ohne das Suchfeld „Installierte Plugins durchsuchen“ zu bemühen. Und da ich auf der Testinstallation sehr viel „meine“ Plugins installiere, aktiviere, deaktiviere, deinstalliere, möchte ich die in einer kurzen, flexiblen Übersicht haben.

    • Diese Antwort wurde vor 9 Monaten, 3 Wochen von hupe13 geändert.
    Moderator La Geek

    (@la-geek)

    Mit Happyfiles kann man Plugins in selbst definierte Kategorien (samt Unterkategorien) sortieren.

    Thread-Starter hupe13

    (@hupe13)

    Wenn man weiß, was man suchen muss und hier und da ein bisschen Code klaut und anpasst, ist es für meinen speziellen Fall nicht schwer:

    add_filter(
    'views_plugins',
    function ( $views ) {
    global $wp_list_table;
    if ( isset( $wp_list_table->items ) ) {
    $all_plugins = $wp_list_table->items;
    $count = 0;
    foreach ( $all_plugins as $plugin_file => $plugin_data ) {
    if ( stripos( $plugin_data['Name'], 'leaflet' ) !== false ) {
    $count++;
    }
    }
    $views['leaflet'] = '<a href="' . get_admin_url() . 'plugins.php?s=leaflet&plugin_status=all">Leaflet <span class="count">(' . $count . ')</span></a>';
    }
    return $views;
    }
    );

    Danke für die Antworten.

Ansicht von 8 Antworten – 1 bis 8 (von insgesamt 8)

Das Thema „Liste der Plugins verwalten“ ist für neue Antworten geschlossen.