Hauptmenü

Werkzeuge

Kategorien

Archiv

Einhell

Auf erste Kindseite leiten, wenn eine Seite Kindseiten hat

Erstellt in PHP, Wordpress am 20. Januar 2023 vom Daschmi

Mit folgendem Code kann man auf die erste Unterseite umleiten, sofern eine Seite Unterseiten hat. Dies ist nützlich wenn z.B. die Oberseite keinen Inhalt aufweist.

function my_template_redirect() {

  if (\is_page()) {

      $subPages = \get_children([
          'post_parent' => \get_the_ID(),
          'post_type'   => 'page',
          'post_status' => 'publish'
      ]);

      if (sizeof($subPages) > 0) {

          \wp_redirect(\get_permalink(array_shift($subPages)->ID)); exit;

      }

  }

}

\add_action('template_redirect', 'my_template_redirect');

DS Youtube – Youtube Videos datenschutzkonform in Webseite einbinden

Erstellt in PHP, Wordpress am 15. Oktober 2022 vom Daschmi

Mit der Bibliothek DSYoutube ist es auf einfache Weise möglich YouTube Videos in eine Webseite einzubinden. Man braucht lediglich die VideoID und muss den Pfad für das Vorschaubild konfigurieren.

Weitere Informationen und Downloads bekommen Sie auf der Demoseite der Bibliothek.

Für WordPress gibt es ein Plugin, mit dem sie die Funktionalität einfach über einen Shortcode z.B.

[ds_youtube]OepAzzGcz4E[/ds_youtube]

nutzen können.

Im Frontend sieht das ganze dann so aus.

Datenschutz ist uns wichtig!

Daher wird dieses Video erst geladen wenn sie der Verwendung des Drittanbieters "YouTube" zustimmen durch den möglicherweise Cookies gesetzt und Nutzerdaten übertragen werden.

Ich bin einmalig damit einverstanden.
DSGVO Script powered by https://daschmi.de.

Ds Youtube

Stückpreis: 15,00 EUR
Mit dieser Bibliothek können YouTube Videos datenschutzkonform eingebunden werden.
Mit diesem Plugin können YouTube Videos datenschutzkonform eingebunden werden. Die Videos werden dabei erst nach Nutzerzustimmung geladen. Eine Demo sehen sie hier https://daschmi.de/ds_youtube/

Filter/Action unter WordPress innerhalb von Namespaces verwenden

Erstellt in Wordpress am 5. Oktober 2022 vom Daschmi

Nutzt man Namespaces und möchte unter WordPress mit add_filter oder add_action ein Callback übergeben, kann man so vorgehen:

namespace ds;

function wp_enqueue_scripts() {

}

\add_action('wp_enqueue_scripts', __NAMESPACE__.'wp_enqueue_scripts');

Link zur Datenschutzseite

Erstellt in Wordpress am 4. September 2022 vom Daschmi

Um den Link zur Datenschutzseite für WordPress zu generieren kann folgender Code verwendet werden.

<?php echo get_permalink(get_option('wp_page_for_privacy_policy')); ?>

Reiter „AIOSEO – Settings“ vom Plugin „All in One SEO“ bei bestimmten CustomPost Types ausblenden

Erstellt in Wordpress am 17. Februar 2022 vom Daschmi

Mit folgendem Hook der Action „add_meta_boxes“ kann der Reiter „AIOSEO – Settings“ des SEO Plugins „All in One SEO“ bei bestimmten Beitragstypen ausgeblendet werden.

Action registrieren z.B. in der functions.php des WordPress Themes:

#functions.php

\add_action('add_meta_boxes', ['ns\Actions', 'add_meta_boxes'], 100);

Dann in der geladenen Klasse

#Actions.class.php

abstract class Actions {

  public static function add_meta_boxes(): void {

    \remove_meta_box('aioseo-settings', ['protektor-quote', 'protektor-partner'], 'normal');

  }

}

WordPress und Sessions und „Zustand der Website“

Erstellt in PHP, Wordpress am 10. September 2020 vom Daschmi

Wer mit Sessions unter WordPress arbeiten muss und bisher die Session einfach im init Hook mit session_start() geöffnet hat erhält seit WordPress 5.5. folgende Meldung im Check „Zustand der Website“

Gelöst habe ich das Problem bei mir, indem ich die Session im init Hook einmal öffne und wieder schließe. Später öffne ich sie im send_headers Hook wieder und lasse sie offen damit ich nach dem Senden des Headers noch damit arbeiten kann.

function st_init() {

    if (!session_id()) { 
        
        // Ich öffne die Sesion kurz, damit ich den $_SESSION Array verwenden kann
        // Schließe sie aber dann wieder

        session_start(); 
        session_write_close();

    }

}

function st_send_headers() {

    // Hier öffne ich die Session wieder, damit ich mit dem $_SESSION Array wieder arbeiten kann

    $ses = $_SESSION;
    session_start();
    $_SESSION = $ses;

}

add_action('init', 'st_init', 1);
add_action('send_headers', 'st_send_headers');

Composer Element mit Kategorieauswahl

Erstellt in Wordpress am 28. Februar 2019 vom Daschmi

$categories_array = [];

foreach (\get_categories() as $category ) {

   $categories_array[html_entity_decode($category->name)] = $category->term_id;

} 

\vc_map([
   'name' => __('Beitragsfilteransicht 2', 'lhw'),
   'base' => 'm1_postfilter',
   'class' => '',
   'category' => 'M1',
   'params' => [
      [
         'param_name' => 'category_id',
         'type' => 'dropdown',
         'value' => $categories_array,
         'heading' => __('Category filter:', 'lhw'),
         'description' => '',
         'holder' => 'div',
         'class' => ''
      ]
   ]
]); 

Link zur Kategorieverwaltung mittels add_submenu_page

Erstellt in Wordpress am 30. März 2016 vom Daschmi

Ich hatte das Problem, dass ich zur Kategorieverwaltung einer benutzerdefinierten Taxononomie (registriert mit register_taxonomy) leiten wollte. Das ganze habe ich für wpShopGermany wie folgt umgesetzt:

$callback = add_submenu_page('wpsg-Admin', __("Produktkategorien", "wpsg"), __("Produktkategorien", "wpsg"), 'wpsg_produkt', 'wpsg-Productcategories', 'callback');
add_action("load-".$callback, function() { header('Location: '.admin_url('edit-tags.php?taxonomy=wpsg-tax')); exit; } );

WordPress Menü Reihenfolge drehen

Erstellt in Wordpress am 6. Dezember 2015 vom Daschmi

Hat man im WordPress ein Menü, welches man mittels wp_nav_menu anzeigt und möchte die Elemente drehen. So kann man folgenden Filter verwenden:

function daschmi_reverse_menu($menu, $options)
{

  return array_reverse($menu);

}

Das Menü bindet man dann wie folgt ein:

add_filter('wp_nav_menu_objects', 'daschmi_reverse_menu');
wp_nav_menu(array('theme_location' => 'header-menu'));
remove_filter('wp_nav_menu_objects', 'daschmi_reverse_menu');