it-swarm.dev

Nejlepší sbírka kódu pro váš function.php soubor

Hlasujte o otázce a odpovědích, které považujete za užitečné, kliknutím na šipku NAHORU na levé straně otázky nebo odpovědi.

Stejně jako u mnoha dalších, kteří nyní sledují tento příspěvek, četl jsem různé blogy, fóra a diskusní skupiny, abych se naučil a zlepšoval své dovednosti v oblasti wordpress. Během posledních 12 měsíců jsem byl na misi, abych nahradil používání pluginů přidáním kódu do souboru functions.php. I když jsem naprosto souhlasí, že pluginy jsou velmi užitečné v mnoha situacích moje zkušenosti ukázaly, že v 90% případů použití, i když plugin může existovat, ve skutečnosti by to mohlo způsobit zbytečné komplikace a problémy s kompatibilitou. Navíc v mnoha případech takové pluginy přidaly nabídky a další admin prvky, které nechci nebo nepotřebuji.

Více často než ne, jsem zjistil, že analýzou kódu pluginů jsem byl schopen odstranit kód, který jsem chtěl, a naprogramovat ho do mého functions.php. To mi poskytlo přesnou funkčnost, kterou jsem potřeboval, aniž bych musel obsahovat zbytečné prvky.

Účelem tohoto příspěvku je tedy pokus zapojit vás, čtenáře/administrátora/vývojáře, aby se se mnou a dalšími uživateli podělili o jakékoli kódové bity, které považujete za užitečné a které přidaly do souboru function.php vašeho tématu, aby bylo možné rozšířit nebo rozšířit aplikaci WordPress bez využití plugin.

Když odešlete odpověď zde prosím laskavě dát každý kód bit titul, dejte nám vědět, pokud s jakou verzí wordpress znáte jeho kompatibilní s, včetně jakéhokoli popisu se cítíte nejlépe popisuje jeho funkce a (pokud je to vhodné) patří odkaz na původní nebo zdroj, kde jste tyto informace našli.

Těším se na všechny vaše odpovědi a budu samozřejmě neustále přidávat své nové nálezy, kdykoliv je najdu.

327

Odebrat položku nabídky Odkazy

Mnoho z mých instalací WordPress nevyžaduje, aby uživatelé měli přístup k položce menu 'Odkazy'. Tato funkce ji odstraní z pohledu.

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

Zakázat zprávu Upgrade Now pro Non-Administrators

Jsem vlastně velkým fanouškem tohoto kódu. Místo toho dávám přednost tomu, aby zákazníci mohli aktualizovat své vlastní instalace WordPress. To pomáhá udržovat stránky aktuální a nutí mě psát lepší kód.

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

Přidat vlastní typy příspěvků na stránku archivů

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
NetConstructor.com

Vlastní loga pro přihlašovací stránku a 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

Změna názvu nabídky „Příspěvky“ v administrátorovi na vše, co si přejete (např. „Články“)

// 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;
}

Kredity na smashingmagazine.com

1
dani

Přidat vlastní třídu do dalšího a předchozího odkazu

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

Automatické přidání skrytého vlastního pole a přiřazení hodnoty příspěvku při zveřejnění příspěvku

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

Volejte bloginfo pomocí krátkého kódu ...

function digwp_bloginfo_shortcode($atts) {

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

    return get_bloginfo($key);
}

add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');

Použití:

[bloginfo key='name']
0
jackreichert