diff --git a/wp-multi-kategorie.php b/wp-multi-kategorie.php new file mode 100644 index 0000000..21cd501 --- /dev/null +++ b/wp-multi-kategorie.php @@ -0,0 +1,140 @@ + +
+

WP Multi Kategorie

+ +

Wähle Kategorien aus, die du aus bestimmten Bereichen deiner Website ausblenden möchtest.

+
+ + + + + + + + + + + + + 0, 'order' => 'ASC')); + $alt = 0; + foreach ($categories as $cat) : + $alt_class = ($alt++ % 2) ? ' class="alternate"' : ''; + ?> + > + + + + + + + + +
KategorieStartseite ausblenden?Feeds ausblenden?Archive ausblenden?Suche ausblenden?
cat_name); ?>cat_ID, $options['exclude_main'])); ?> />cat_ID, $options['exclude_feed'])); ?> />cat_ID, $options['exclude_archives'])); ?> />cat_ID, $options['exclude_search'])); ?> />
+

+ +

+
+
+ isset($_POST['exclude_main']) ? array_map('intval', $_POST['exclude_main']) : array(), + 'exclude_feed' => isset($_POST['exclude_feed']) ? array_map('intval', $_POST['exclude_feed']) : array(), + 'exclude_archives' => isset($_POST['exclude_archives']) ? array_map('intval', $_POST['exclude_archives']) : array(), + 'exclude_search' => isset($_POST['exclude_search']) ? array_map('intval', $_POST['exclude_search']) : array() + ); + + update_option('wpmkategorie_exclusions', $options); + return '

Einstellungen erfolgreich aktualisiert.

'; +} + +// Optionen abrufen +function wpmkategorie_get_options() { + $defaults = array( + 'exclude_main' => array(), + 'exclude_feed' => array(), + 'exclude_archives' => array(), + 'exclude_search' => array() + ); + + $options = get_option('wpmkategorie_exclusions', $defaults); + if (!is_array($options)) { + $options = $defaults; + update_option('wpmkategorie_exclusions', $options); + } + + return $options; +} + +// Kategorien ausblenden +function wpmkategorie_exclude_categories($query) { + if (!is_admin() && $query->is_main_query()) { + $options = wpmkategorie_get_options(); + + if ($query->is_home() && !empty($options['exclude_main'])) { + $query->set('category__not_in', $options['exclude_main']); + } + if ($query->is_feed() && !empty($options['exclude_feed'])) { + $query->set('category__not_in', $options['exclude_feed']); + } + if ($query->is_archive() && !empty($options['exclude_archives'])) { + $query->set('category__not_in', $options['exclude_archives']); + } + if ($query->is_search() && !empty($options['exclude_search'])) { + $query->set('category__not_in', $options['exclude_search']); + } + } + + return $query; +} + +// Deinstallation +function wpmkategorie_uninstall() { + delete_option('wpmkategorie_exclusions'); +} +register_uninstall_hook(__FILE__, 'wpmkategorie_uninstall'); \ No newline at end of file