affinite_wp_watermark_rules_pre_validate – Úprava pravidel před validací
Tento filtr umožňuje upravit pravidla vodoznaků před jejich validací. Je užitečný pro:
- Přidání výchozích hodnot
- Úpravu pravidel podle podmínek
- Dynamické změny pravidel
add_filter('affinite_wp_watermark_rules_pre_validate', function($rules) {
// Přidání výchozího pravidla, pokud žádné neexistuje
if (empty($rules)) {
$rules[] = array(
'type' => 'text',
'text' => 'Default Watermark',
'enabled' => true,
// ... další nastavení
);
}
return $rules;
});
affinite_wp_watermark_rules_validated – Úprava validovaných pravidel
Tento filtr umožňuje upravit validovaná pravidla pro konkrétní attachment. Je užitečný pro:
- Podmíněné aplikování pravidel
- Úpravu pravidel podle typu obrázku
- Dynamické změny pro konkrétní obrázky
add_filter('affinite_wp_watermark_rules_validated', function($rules, $attachment_id) {
// Aplikovat pravidla pouze na obrázky z konkrétní kategorie
$post_id = wp_get_post_parent_id($attachment_id);
if ($post_id) {
$categories = wp_get_post_categories($post_id);
if (!in_array(5, $categories)) { // Kategorie ID 5
return array(); // Vrátit prázdné pole = žádná pravidla
}
}
return $rules;
}, 10, 2);
Příklady použití
Příklad 1: Dynamický text vodoznaku
add_filter('affinite_wp_watermark_rules_pre_validate', function($rules) {
foreach ($rules as &$rule) {
if ($rule['type'] === 'text') {
// Přidat aktuální rok do textu
$rule['text'] = str_replace('{YEAR}', date('Y'), $rule['text']);
}
}
return $rules;
});
Příklad 2: Podmíněné pravidla podle post type
add_filter('affinite_wp_watermark_rules_validated', function($rules, $attachment_id) {
$post_id = wp_get_post_parent_id($attachment_id);
if ($post_id) {
$post_type = get_post_type($post_id);
// Pro produkty použít jiná pravidla
if ($post_type === 'product') {
// Upravit pravidla pro produkty
foreach ($rules as &$rule) {
$rule['opacity'] = 80; // Vyšší průhlednost pro produkty
}
}
}
return $rules;
}, 10, 2);
Best practices
- Vždy vracejte pole pravidel (i prázdné)
- Používejte type hints pro lepší kompatibilitu
- Testujte filtry na testovacím prostředí
- Dokumentujte vlastní filtry
