it-swarm.com.de

Beste Sammlung von Code für Ihre functions.php-Datei

Bitte stimmen Sie über die Frage und alle Antworten ab, die Sie nützlich finden, indem Sie auf den Pfeil nach oben links neben der Frage oder Antwort klicken.

Wie bei vielen anderen, die sich diesen Beitrag gerade ansehen, habe ich verschiedene Blogs, Foren und Diskussionsgruppen gelesen, um meine WordPress-Kenntnisse zu verbessern. In den letzten 12 Monaten hatte ich die Mission, die Verwendung von Plugins durch Hinzufügen von Code zu meiner functions.php-Datei zu ersetzen. Obwohl ich völlig einverstanden bin, dass Plugins in vielen Situationen sehr nützlich sind, hat meine Erfahrung gezeigt, dass in 90% der Anwendungsfälle, obwohl ein Plugin möglicherweise vorhanden ist, die tatsächliche Verwendung unnötige Komplikationen und Kompatibilitätsprobleme verursachen kann. Zusätzlich haben solche Plugins in vielen Fällen Menüs und andere Admin-Elemente hinzugefügt, die ich nicht möchte oder benötige.

In den meisten Fällen habe ich festgestellt, dass ich durch die Analyse des Plugin-Codes den gewünschten Code herausnehmen und in meinen functions.php einbauen konnte. Dadurch erhielt ich genau die Funktionalität, die ich benötigte, ohne unnötige Elemente einbeziehen zu müssen.

Der Zweck dieses Beitrags ist also mein Versuch, Sie, den Leser/Administrator/Entwickler, dazu zu bewegen, mir und anderen hier Codebits mitzuteilen, die Sie nützlich finden und die der function.php-Datei Ihres Themas hinzugefügt haben, um WordPress zu erweitern oder zu verbessern, ohne sie zu verwenden ein Plugin.

Wenn Sie hier eine Antwort einreichen, geben Sie bitte jedem Code-Bit einen Titel, lassen Sie uns wissen, mit welcher Version von WordPress Sie kompatibel sind, fügen Sie eine Beschreibung hinzu, die Ihrer Meinung nach die Funktion am besten beschreibt, und fügen Sie (falls zutreffend) einen Link zum Original hinzu Plugin oder Quelle, in der Sie die Informationen gefunden haben.

Ich freue mich auf alle Ihre Antworten und werde natürlich meine eigenen neuen Funde hinzufügen, wann immer ich sie finde.

327

Menüelement "Links entfernen"

Bei vielen meiner WordPress-Installationen muss der Benutzer nicht auf den Menüpunkt "Links" zugreifen können. Diese Funktion entfernt es aus der Ansicht.

add_action( 'admin_menu', 'custom_admin_menu' );
function custom_admin_menu() 
{
    global $menu;
    // var_dump($menu); // use this to identify the key for the menu item you want to remove
    unset( $menu[15] ); //key 15 is links
    if ( !current_user_can('manage_options') ) { unset( $menu[75] ); } //key 75 is tools ... but only for non super admins
}
1
Philip Downer

Upgrade Now-Nachricht für Nicht-Administratoren deaktivieren

Ich bin eigentlich ein großer Fan davon, diesen Code NICHT zu verwenden. Stattdessen erlaube ich Kunden lieber, ihre eigenen WordPress-Installationen zu aktualisieren. Dies hilft, die Site auf dem neuesten Stand zu halten und zwingt mich, besseren Code zu schreiben.

if ( !current_user_can( 'manage_options' ) ) {
  add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
  add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}
1
Philip Downer

Hinzufügen von benutzerdefinierten Beitragstypen zur Archivseite

function namespace_add_custom_types( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
 'post', 'your-custom-post-type-here'
            ));
      return $query;
    }
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );
1

Benutzerdefinierte Logos für Anmeldeseite und Admin

/*-----------------------------------------------------------------------------------*/
/*  Custom logos
/*-----------------------------------------------------------------------------------*/
function custom_admin_logo() {
    echo '
        <style type="text/css">
            #header-logo { background-image: url('.get_bloginfo('template_directory').'/path/to/images/admin-logo.png) !important; }
        </style>
    ';
}
add_action('admin_head', 'custom_admin_logo');

function custom_login_logo() {
    echo '<style type="text/css">
        h1 a { background-image:url('.get_bloginfo('template_directory').'/path/to/images/login-logo.png) !important; }
    </style>';
}

add_action('login_head', 'custom_login_logo');
1
Daniel Sachs

Ändern des Menünamens "Posts" in admin nach Belieben (z. B. "Articles")

// hook the translation filters
add_filter('gettext','change_post_to_article');
add_filter('ngettext','change_post_to_article');

function change_post_to_article( $translated ) {
$translated = str_ireplace('Post','Article',$translated );// ireplace is PHP5 only
return $translated;
}

Dank an smashingmagazine.com

1
dani

Hinzufügen einer benutzerdefinierten Klasse zu den nächsten und vorherigen Links

add_filter('next_posts_link_attributes', 'posts_link_attributes');
add_filter('previous_posts_link_attributes', 'posts_link_attributes');
function posts_link_attributes(){
    return 'class="styled-button"';
    }
1

Füge automatisch ein verstecktes benutzerdefiniertes Feld hinzu und ordne einen Wert einem Beitrag zu, wenn der Beitrag veröffentlicht wird

add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
global $wpdb;
if(!wp_is_post_revision($post_ID)) {
    add_post_meta($post_ID, 'field-name', 'custom value', true);
}
}
1

Rufe bloginfo mit dem Shortcode an ...

function digwp_bloginfo_shortcode($atts) {

    extract(shortcode_atts(array(
            'key' => '',
            ), $atts));

    return get_bloginfo($key);
}

add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');

Verwendungszweck:

[bloginfo key='name']
0
jackreichert