WordPress Snippety vol. 2
Základní funkce
1. Přidání Google Analytics
Tento snippet přidá Google Analytics sledovací kód do záhlaví vašeho webu.
function add_google_analytics() { ?>
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXX-Y"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-XXXXX-Y');
</script>
<?php }
add_action('wp_head', 'add_google_analytics');
Ps. Nezapomeňte na cookies lištu!
2. Odebrání widgetů z nástěnky
function customize_dashboard_for_editors_and_admins() {
$default_widgets = [
'dashboard_quick_press' => 'side',
'dashboard_activity' => 'normal',
'dashboard_right_now' => 'normal',
'dashboard_incoming_links' => 'normal',
'dashboard_plugins' => 'normal',
'dashboard_recent_drafts' => 'side',
'dashboard_primary' => 'side',
'dashboard_secondary' => 'side',
'dashboard_site_health' => 'normal'
];
foreach ($default_widgets as $widget_id => $context) {
remove_meta_box($widget_id, 'dashboard', $context);
}
}
add_action('wp_dashboard_setup', 'customize_dashboard_for_editors_and_admins');
3. Gutenberg fok
Jeden z mých nejoblíbenějších řádků, pokud se chci soustředit na custom fields
při tvorbě obsahu a nenarušovat jej Gutenbergem.
add_filter('use_block_editor_for_post', '__return_false', 10);
4. Zakázání aktualizací
Tento snippet vám umožní zakázat automatické aktualizace jádra WordPressu, pluginů a šablon. To může být užitečné, pokud chcete mít plnou kontrolu nad aktualizacemi na vašem webu.
// Zakázání automatických aktualizací jádra WordPress
add_filter('auto_update_core', '__return_false');
// Zakázání automatických aktualizací pluginů
add_filter('auto_update_plugin', '__return_false');
// Zakázání automatických aktualizací šablon
add_filter('auto_update_theme', '__return_false');
Média / soubory
1. Sanitace názvu nahraných médií (malá písmena)
Tento kód slouží k automatickému převodu názvů souborů na malá písmena při jejich nahrávání do WordPressu.
add_filter( 'sanitize_file_name', 'mb_strtolower' );
2. Sanitace názvu nahraných médií (pokročilejší funkce)
Tato komplexnější funkce převádí názvy souborů na malá písmena, ale také provádí další úpravy, například odstranění speciálních znaků nebo nahrazení mezer pomlčkami.
function custom_sanitize_file_name( $filename ) {
// Převod na malá písmena
$filename = strtolower( $filename );
// Nahrazení mezer pomlčkami
$filename = str_replace( ' ', '-', $filename );
// Odstranění nežádoucích znaků
$filename = preg_replace( '/[^A-Za-z0-9\-.]/', '', $filename );
return $filename;
}
add_filter( 'sanitize_file_name', 'custom_sanitize_file_name', 10, 1 );
3. Přepsání stejného názvu souboru
Tento proces zaručuje, že starý soubor je nahrazen novým, aniž by se vytvořil duplicitní název souboru s příponou, jako je -1
, -2
, atd. To znamená, že po nahrání zůstane v médiích pouze nový soubor s původním názvem.
-
Existující soubor je smazán: Pokud už na serveru existuje soubor se stejným názvem, je smazán z databáze i ze serveru.
-
Nový soubor je následně nahrán: Po odstranění starého souboru se nový soubor uloží na jeho místo se stejným názvem.
function replace_uploaded_file($file) {
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['path'] . '/' . $file['name'];
if (file_exists($file_path)) {
// Najděte a smažte existující přílohu se stejným názvem souboru
$attachment_id = attachment_url_to_postid($upload_dir['url'] . '/' . $file['name']);
if ($attachment_id) {
wp_delete_attachment($attachment_id, true);
}
// Smažte existující soubor ze serveru
unlink($file_path);
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'replace_uploaded_file');
- Tento kód neřeší případ, kdy se starý soubor používá někde na webu. Pokud soubor nahradíte, odkazy na tento soubor zůstanou platné, ale obsah souboru se změní.
- Pokud máte velký počet souborů v knihovně médií, vyhledání a smazání starých souborů může mít dopad na výkon.
- Buďte opatrní při nasazení tohoto kódu na produkční web, zejména pokud má více uživatelů přístup k nahrávání souborů. Automatické mazání souborů může vést k neúmyslným ztrátám dat, pokud nebude použito správně.