Tovább a tartalomhoz

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:

  1. Nyisd meg a Custom Dashboard kiegészítő PHP fülét.

  2. 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;
    }
  3. Mentsd el, és nyisd meg a Webhelyek → Webhelyek kezelése oldalt: az új oszlop ott van.

  4. 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.

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.

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.

  1. Nyisd meg a Custom Dashboard kiegészítő PHP fülét.

  2. 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;
    }
  3. Írd át a sec_inactive_themes azonosítót arra az ellenőrzésre, amelyet el akarsz hagyni.

  4. 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

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:

  1. A vezérlőpult webhelyén nyisd meg az Eszközök → Sablonszerkesztő oldalt.
  2. A jobb oldali listában kattints a Sablonfüggvények (functions.php) fájlra.
  3. A fájl végére illeszd be ugyanazt a kódot.
  4. 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.
  • 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:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások