10 nützliche Code-Schnipsel für die WordPress functions.php

10 nützliche Codes für die WordPress functions.phpDie functions.php ist eine optionale Datei im Theme-Ordner von WordPress. Mit der functions.php können eine Vielzahl von WordPress-Features wie Sidebars, Widgets, Navigations-Menüs, Post-Formats und vieles mehr aktiviert, deaktiviert oder manipuliert werden. Im Grunde arbeitet diese Datei wie ein Plugin und wird automatisch bei der Initialisierung von WordPress geladen.
Folgend werden 10 nützliche Code-Schnipsel für die functions.php präsentiert, die bei meinen WordPress-Projekten immer wieder zum Einsatz kommen.

1. WordPress-Login-Logo austauschen

// CUSTOM ADMIN LOGIN HEADER LOGO
   function my_custom_login_logo() {
    echo '<style type="text/css"> h1 a { background-image:url('.get_bloginfo('template_directory').'/images/your-logo-image.png) !important; } </style>';
   }
   add_action('login_head', 'my_custom_login_logo');

// CUSTOM ADMIN LOGIN HEADER LINK & ALT TEXT
   function change_wp_login_url() {
    echo bloginfo('url');  // OR ECHO YOUR OWN URL
   }
   function change_wp_login_title() {
    echo get_option('blogname'); // OR ECHO YOUR OWN ALT TEXT
   }
   add_filter('login_headerurl', 'change_wp_login_url');
   add_filter('login_headertitle', 'change_wp_login_title');

Nützlich zum Beispiel um eine WordPress-Installation an das Corporate Design des Kunden anzupassen.

Eigenes Logo für WordPress-Login

PandaWeb-Logo auf der WordPress Login-Seite

2. Zugriff auf Menüpunkte im Backend auf Basis des Benutzernamens beschränken

Mit dieser Funktion lässt sich auf Basis des Benutzernamens der Zugriff auf diverse Admin-Menüpunkte deaktivieren:

function remove_menus()
{
    global $menu;
    global $current_user;
    get_currentuserinfo();

    if($current_user->user_login == 'username')
    {
        $restricted = array(__('Posts'),
                            __('Media'),
                            __('Links'),
                            __('Pages'),
                            __('Comments'),
                            __('Appearance'),
                            __('Plugins'),
                            __('Users'),
                            __('Tools'),
                            __('Settings')
        );
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }// end while

    }// end if
}
add_action('admin_menu', 'remove_menus');

Alternativ kann die Zeile 7 für if($current_user->user_login != 'admin') ersetzt werden. Dann wird der Zugriff für alle Benutzer außer dem Admin beschränkt.

3. Länge des Textauszugs (Excerpt) festlegen

Standardmäßig ist die Länge des Textauszuges auf 55 Wörter beschränkt. Dieser Code-Schnipsel überschreibt diesen Wert:

function new_excerpt_length($length) {
    return 150;
}

add_filter('excerpt_length', 'new_excerpt_length');

In diesem Beispiel ist die Länge des Auszuges auf 150 Wörter festgelegt.

4. Seitensprung bei Klick auf ‘Weiterlesen’ deaktivieren

Klickt man bei einem angeteaserten Artikel auf ‘Weiterlesen’ fügt WordPress automatisch einen Seitensprung ein. Mich stört das. Mit dieser Funktion wird der Page-Jump beim Laden der Seite deaktiviert:

function remove_more_jump_link($link) {
$offset = strpos($link, '#more-');
if ($offset) {
$end = strpos($link, '"',$offset);
}
if ($end) {
$link = substr_replace($link, '', $offset, $end-$offset);
}
return $link;
}
add_filter('the_content_more_link', 'remove_more_jump_link');

5. WordPress Admin-Bar entfernen

Mit dem Release von WordPress 3.1 wurde die Admin Bar als neues Feature hinzugefügt. Einige empfinden diese als überaus praktisch andere finden sie störend. Entfernen kann man die Admin Bar mit folgenden Code:

remove_action('init', 'wp_admin_bar_init');

Quelle: www.wprecipes.com – WordPress tip: Remove WP 3.1 Admin Bar

6. RSS-Feed in WordPress deaktivieren

Gerade bei ‘statischen’ WordPress-Seiten ist ein RSS-Feed oft unnötig. So kann dieser deaktiviert werden:

function fb_disable_feed() {
wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
}

add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);

7. Entfernen der WordPress Dashboard Widgets

Mit diesem Code-Schnipsel können die Dashboard Widgets entfernt werden:

function remove_dashboard_widgets() {
	global $wp_meta_boxes;

	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_drafts']);
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);

}

add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

Wenn die Dashboard Widgets weiterhin für Admin-User sichtbar bleiben sollen, einfach die letzte Zeile gegen folgende austauschen:

if (!current_user_can('manage_options')) {
	add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );
}

Quelle: www.wpbeginner.com – How to Remove WordPress Dashboard Widgets

8. Hinzufügen der Custom Post Types in die WordPress-Suche

Um die seit WordPress 3.0 inte­grierte Custom Post Types in den Suchergebnissen der WordPress-Suche erscheinen zu lassen, bedarf es diesen Code in der functions.php:

function searchAll( $query ) {
 if ( $query->is_search ) { $query->set( 'post_type', array( 'site','plugin', 'theme','person' )); }
 return $query;
}
add_filter( 'the_search_query', 'searchAll' );

9. jQuery von der Google CDN laden

Einbindung des Javascript-Frameworks jQuery über das Google Content Delivery Network (CDN)

add_action( 'init', 'jquery_register' );

// register from google and for footer
function jquery_register() {

if ( !is_admin() ) {

    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', ( 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js' ), false, null, true );
    wp_enqueue_script( 'jquery' );
}
}

10. Meta-Tag “Generator” entfernen

WordPress erweitert automatisch den Quellcode um einen Meta-Tag Generator der die verwendete WordPress-Version ausgibt. Der Nutzen davon bleibt mir verschlossen, kann aber auf jeden Fall ein Sicherheitsrisiko darstellen. Folgende Code-Zeile entfernt den Meta-Tag Generator aus dem Head-Bereich der WordPress-Installation:

remove_action('wp_head', 'wp_generator');

Quelle: Remove WP Generator Meta Tag

Quellen und weitere Funktionen
Alle Code-Schnipsel, die keine explizite Quellenangabe haben wurden auf WordPress Answers – Best Collection of Code for your functions.php file gefunden.

5 Kommentare

  1. Pingback: 10 Code-Schnipsel zur Anpassung von WordPress | Online Marketing News

  2. Pingback: 10 nützliche Code-Schnipsel für die WordPress functions.php › PandaWeb | DEV-Link-List

Schreibe einen Kommentar

Required fields are marked *.