Egyedi oszlop, biztonsági ellenőrzések és widgetkorlát kóddal
Új oszlop a Webhelyek kezelése táblázatban, a Webhely biztonságának megerősítése ellenőrzéseinek elhagyása és a Nem MainWP widget bejegyzéseinek korlátozása a Custom Dashboard kiegészítővel.
Három haladó testreszabás kódrészlettel történik. Mindegyikhez a Custom Dashboard kiegészítő (ingyenes) PHP füle kell: Kiegészítők → Custom Dashboard. A kiegészítő telepítéséről a kiegészítők kezelése fejezet szól. Minden módosítás a Save Changes gombbal lép érvénybe.
Új oszlop a Webhelyek kezelése táblázatban
Szekció neve “Új oszlop a Webhelyek kezelése táblázatban”A Webhelyek → Webhelyek kezelése táblázatba bármilyen saját adatot felvehetsz új oszlopként. Két szűrő kell hozzá:
| Szűrő | Mire való |
|---|---|
mainwp_sitestable_getcolumns |
Felveszi az oszlopot a táblázat fejlécébe |
mainwp_sitestable_item |
Kitölti az oszlop értékét minden sorban |
Az oszlop kulcsának egyedinek kell lennie, és a két szűrőben ugyanannak. Az alábbi példa a Child-webhelyek cURL-verzióját mutatja:
-
Nyisd meg a Custom Dashboard kiegészítő PHP fülét.
-
Illeszd be:
add_filter( 'mainwp_sitestable_getcolumns', 'mycustom_sites_table_column', 10 );function mycustom_sites_table_column( $cols ) {$cols['child_curl_version'] = 'cURL verzió';return $cols;}add_filter( 'mainwp_sitestable_item', 'mycustom_sitestable_item', 10 );function mycustom_sitestable_item( $item ) {$options = apply_filters( 'mainwp_getwebsiteoptions', array(), $item['id'], 'site_info' );$website_info = json_decode( $options, true );if ( is_array( $website_info ) && isset( $website_info['child_curl_version'] ) ) {$item['child_curl_version'] = $website_info['child_curl_version'];} else {$item['child_curl_version'] = '';}return $item;} -
Mentsd el, és nyisd meg a Webhelyek → Webhelyek kezelése oldalt: az új oszlop ott van.
-
Az oszlop fejlécét húzással a kívánt helyre teheted.
Az alap váz, ha más adatot jelenítenél meg:
add_filter( 'mainwp_sitestable_getcolumns', 'my_custom_column', 10 );function my_custom_column( $cols ) { $cols['column_key'] = 'Oszlop fejléce'; return $cols;}
add_filter( 'mainwp_sitestable_item', 'my_custom_item', 10 );function my_custom_item( $item ) { $item['column_key'] = 'Érték'; return $item;}Az $item['column_key'] értéke tetszőleges szöveg vagy HTML lehet.
Elérhető webhelyadatok
Szekció neve “Elérhető webhelyadatok”A mainwp_getwebsiteoptions szűrő site_info értékéből json_decode után ezek a mezők érhetők el:
| Mező | Tartalom |
|---|---|
child_curl_version |
A cURL verziója |
child_openssl_version |
A cURL által használt OpenSSL verziója |
child_version |
A MainWP Child verziója |
db_size |
Az adatbázis mérete |
debug_mode |
Be van-e kapcsolva a WordPress hibakeresési módja |
format_datetime |
Az időzóna, a dátum- és az időformátum |
ip |
A szerver IP-címe |
memory_limit |
A PHP memóriakorlátja |
mysql_version |
A MySQL verziója |
phpversion |
A PHP verziója |
site_lang |
A webhely nyelve |
site_public |
A keresőmotorok láthatósága |
themeactivated |
Az aktív sablon neve |
wpversion |
A WordPress verziója |
A child_site_info nem létező mező: a site_info már eleve tömbként tartalmazza az összes adatot.
Biztonsági ellenőrzések elhagyása
Szekció neve “Biztonsági ellenőrzések elhagyása”A Webhely biztonságának megerősítése ellenőrzései jelzik a lehetséges problémákat a Child-webhelyeken. Ha egy ellenőrzés nálad nem releváns (például fejlesztői webhelyen szándékosan bekapcsolt hibakeresés, vagy tesztelés miatt megtartott inaktív sablonok), kódból kiveheted az eredményekből.
Egy ellenőrzés elhagyása
Szekció neve “Egy ellenőrzés elhagyása”-
Nyisd meg a Custom Dashboard kiegészítő PHP fülét.
-
Illeszd be:
add_filter( 'mainwp_security_issues_stats', 'mycustom_mainwp_security_issues_stats', 10, 3 );function mycustom_mainwp_security_issues_stats( $false, $issues, $website ) {if( is_array( $issues ) && isset( $issues['sec_inactive_themes'] ) ) {$issues['sec_inactive_themes'] = 'Y';}return $issues;} -
Írd át a
sec_inactive_themesazonosítót arra az ellenőrzésre, amelyet el akarsz hagyni. -
Mentsd el.
| Ellenőrzés | Azonosító |
|---|---|
| WordPress verziója | wp_uptodate |
| PHP verziója | phpversion_matched |
| PHP hibajelentés | php_reporting |
| Adatbázis-hibajelentés | db_reporting |
| SSL protokoll | sslprotocol |
| Hibakeresési mód | debug_disabled |
| Elavult bővítmények | sec_outdated_plugins |
| Inaktív bővítmények | sec_inactive_plugins |
| Elavult sablonok | sec_outdated_themes |
| Inaktív sablonok | sec_inactive_themes |
Több ellenőrzés elhagyása
Szekció neve “Több ellenőrzés elhagyása”Ebben a kódban a // jellel kezdődő sorok ki vannak kommentezve, az ellenőrzés aktív marad. Vedd ki a // jelet annál, amelyiket el akarsz hagyni:
add_filter( 'mainwp_security_issues_stats', 'mycustom_mainwp_security_issues_stats', 10, 3 );function mycustom_mainwp_security_issues_stats( $false, $issues, $website ) { if( is_array( $issues ) ) { //$issues['wp_uptodate'] = 'Y'; //$issues['phpversion_matched'] = 'Y'; //$issues['php_reporting'] = 'Y'; //$issues['db_reporting'] = 'Y'; //$issues['sslprotocol'] = 'Y'; $issues['debug_disabled'] = 'Y'; $issues['sec_outdated_plugins'] = 'Y'; $issues['sec_inactive_plugins'] = 'Y'; $issues['sec_outdated_themes'] = 'Y'; $issues['sec_inactive_themes'] = 'Y'; } return $issues;}Visszaállítás: töröld a megfelelő sort (vagy kommenteld ki //-lel), és mentsd.
A Nem MainWP widget bejegyzéseinek korlátozása
Szekció neve “A Nem MainWP widget bejegyzéseinek korlátozása”Sok Child-webhelyet kezelő vezérlőpulton a Nem MainWP widget bejegyzéseinek száma ezres nagyságrendűre nőhet, és lelassítja a Műveletek oldalt. Alapból minden bejegyzés betöltődik. A korlátot kódból adhatod meg, kétféleképpen (elég az egyik).
1. módszer (ajánlott): Custom Dashboard. A PHP fülre:
add_filter( 'mainwp_widget_site_actions_limit_number', 'mycustom_mainwp_widget_site_actions_limit_number' );function mycustom_mainwp_widget_site_actions_limit_number( $value ) { return 200;}A 200 helyére a kívánt legnagyobb bejegyzésszámot írd, majd mentsd.
2. módszer: a sablon functions.php fájlja. Ha nem akarsz kiegészítőt telepíteni:
- A vezérlőpult webhelyén nyisd meg az Eszközök → Sablonszerkesztő oldalt.
- A jobb oldali listában kattints a Sablonfüggvények (functions.php) fájlra.
- A fájl végére illeszd be ugyanazt a kódot.
- Kattints a Fájl frissítése gombra.
Ha nem gyermeksablont használsz, a sablonfrissítés felülírja a módosítást. Ilyenkor inkább egy kódrészlet-bővítmény (például Code Snippets) való erre.
| A Child-webhelyek száma | Javasolt korlát |
|---|---|
| 100 és 200 között | 500 bejegyzés |
| 200 és 500 között | 200 bejegyzés |
| 500 felett | 100 bejegyzés |
Az értéket a szervered teljesítményéhez és ahhoz igazítsd, mennyi előzményt akarsz látni. A widgetek elrejtéséről a vezérlőpult megjelenésének testreszabása szól, a teljesítményről a Rendszer és teljesítmény fejezet.
Webhely-hozzáférési SQL-feltételek lekérése saját lekérdezéshez
Szekció neve “Webhely-hozzáférési SQL-feltételek lekérése saját lekérdezéshez”Ha saját PHP-kódból írsz egyedi lekérdezést a MainWP webhelyeire, a MainWP már meglévő hozzáférési feltételeit nem kell újraírnod: a mainwp_get_sql_where_allow_access_sites szűrő visszaadja őket. A kódot a vezérlőpult oldalán futtasd, miután a MainWP betöltötte a saját hookjait.
$where = apply_filters( 'mainwp_get_sql_where_allow_access_sites', '', 'wp' );| Argumentum | Típus | Jelentés |
|---|---|---|
| Kezdőérték | szöveg | Üres szöveget adj át, a MainWP nem használja fel |
| Tábla-álnév | szöveg | A webhelyek táblájának álneve a lekérdezésedben, alapértéke wp |
| Visszatérési érték | szöveg | AND-del kezdődő SQL-feltételek, egy meglévő WHERE feltétel után fűzheted |
A visszaadott feltételek a MainWP megszokott hozzáférés-szűrését követik, és kizárják az átmeneti (staging) webhelyeket. Az eredmény attól függ, milyen környezetben fut a kód.
Fontos tudnivalók:
- Ez a segéd csak a lekérdezési feltételeket adja, jogosultság-ellenőrzésnek nem elég. A kódnak továbbra is ellenőriznie kell a felhasználó műveleti jogosultságát, a webhelyhez való hozzáférését és az esetleges tulajdonosi korlátozásokat.
- Cron, WP-CLI és REST környezetben a hozzáférés kezelése eltérhet egy interaktív vezérlőpult-kéréstől.
- A felhasználótól érkező értékekhez továbbra is előkészített lekérdezést (prepared query) használj.
- A tábla-álnevet és az SQL-részletet ne fogadd kérésből: az álnevet a kódod rögzítse.
Ellenőrző lista
Szekció neve “Ellenőrző lista”- a Custom Dashboard kiegészítő telepítve és bekapcsolva van;
- a kód a PHP fülön van, és mentetted;
- az új oszlop megjelenik a Webhelyek kezelése táblázatban, és jó adatot mutat;
- a Webhely biztonságának megerősítése a helyes azonosítókat hagyja el;
- a Műveletek oldal gyorsabban töltődik be a korlát beállítása után.
Készült: