it-swarm-pt.tech

Melhor coleção de código para o seu arquivo functions.php

Por favor, vote na pergunta e nas respostas que achar úteis clicando na seta para CIMA no lado esquerdo da pergunta ou resposta.

Tal como acontece com muitos outros que estão agora a ver este post, tenho lido vários blogs, fóruns e grupos de discussão para aprender e melhorar minhas habilidades de wordpress. Nos últimos 12 meses eu estive em uma missão para substituir meu uso de plugins adicionando código ao meu arquivo functions.php. Embora eu concorde completamente que os plugins são muito úteis em muitas situações, minha experiência provou que, em 90% dos casos de uso, embora um plug-in possa existir, utilizá-lo na verdade poderia criar complicações desnecessárias e problemas de compatibilidade. Além disso, em muitos casos, esses plugins adicionaram menus e outros elementos de administração que eu não quero ou preciso.

Mais frequentemente, descobri que, analisando o código dos plugins, consegui retirar o código que queria e codificá-lo em meu functions.php. Isso me proporcionou a funcionalidade exata de que precisava sem precisar incluir elementos desnecessários.

Assim, o propósito deste post é a minha tentativa de envolver você, o leitor/administrador/desenvolvedor, para compartilhar comigo e com outros aqui quaisquer bits de código que você achar úteis e adicionados ao arquivo function.php do seu tema para ampliar ou melhorar o WordPress sem utilizar um plugin.

Quando você enviar uma resposta aqui, por favor, dê a cada título um título, diga-nos se com qual versão do WordPress você é compatível, inclua qualquer descrição que achar melhor para descrever sua função e (se aplicável) inclua um link para o original plugin ou fonte onde você encontrou a informação.

Aguardo ansiosamente todas as suas respostas e, é claro, adicionarei continuamente minhas novas descobertas sempre que as encontrar.

327
NetConstructor.com

Remover item de menu de links

Muitas das minhas instalações do WordPress não exigem que os usuários tenham acesso ao item de menu 'Links'. Esta função a remove da vista.

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

Desativar atualização agora mensagem para não-administradores

Eu sou realmente um grande fã de não usar esse código. Em vez disso, prefiro permitir que os clientes atualizem suas próprias instalações do WordPress. Isso ajuda a manter o site atualizado e me obriga a escrever um código melhor.

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

Adicionar tipos de postagem personalizados à página de arquivos

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

Logos personalizados para a página de login e 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

Alterando o nome do menu "Posts" em admin para o que você quiser (por exemplo, "Artigos")

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

Créditos para smashingmagazine.com

1
dani

Adicione uma classe personalizada aos links próximos e anteriores

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

Adicionar automaticamente um campo personalizado oculto e associando valor a uma postagem quando a postagem é publicada

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

Ligue para o bloginfo usando o shortcode ...

function digwp_bloginfo_shortcode($atts) {

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

    return get_bloginfo($key);
}

add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');

Uso:

[bloginfo key='name']
0
jackreichert