it-swarm-ko.tech

Functions.php 파일을 확보하는 방법

질문이나 답변의 왼쪽에있는 UP 화살표를 클릭하여 유용한 질문과 대답에 투표하십시오.

현재이 게시물을보고있는 많은 사람들과 마찬가지로, 저는 여러 가지 블로그, 포럼 및 토론 그룹을 읽고 내 WordPress 기술을 배우고 향상 시켰습니다. 지난 12 개월 동안 필자는 대신 내 functions.php 파일에 코드를 추가하여 플러그인 사용을 대체하려는 임무를 수행했습니다. 플러그인이 많은 상황에서 매우 유용하다는 사실에 완전히 동의하지만 내 경험에 따르면 플러그인이 존재할 수도 있지만 사용 사례의 90 %에서 실제로이를 활용하면 불필요한 합병증과 호환성 문제가 발생할 수 있습니다. 또한 많은 경우에 이러한 플러그인은 내가 필요로하거나 필요로하지 않는 메뉴 및 다른 관리 요소를 추가했습니다.

필자는 종종 플러그인 코드를 분석하여 원하는 코드 조각을 제거하고 내 functions.php에 하드 코드 할 수 있음을 발견했습니다. 이것은 불필요한 요소를 포함하지 않고도 필요한 정확한 기능을 제공했습니다.

따라서이 게시물의 목적은 리더/관리자/개발자가 나, 다른 사람들과 유용하게 사용할 수있는 코드 비트를 공유하고 WordPress를 확장하거나 향상시키기 위해 테마의 function.php 파일을 추가하려는 시도입니다 플러그인.

여기에 응답을 제출할 때 친절하게도 각 코드 비트에 제목을 적어주십시오. 호환 가능한 것으로 알고있는 WordPress의 버전을 알고 싶다면 그 기능을 가장 잘 묘사 한 설명을 포함시키고 (해당되는 경우) 원본에 대한 링크를 포함하십시오 플러그인 또는 소스를 찾았습니다.

나는 당신의 모든 반응을 고대하고 있으며, 물론 내가 발견 할 때마다 내 자신의 새로운 발견 물을 지속적으로 추가 할 것입니다.

327

링크 제거 메뉴 항목

내 WordPress 설치 중 많은 부분에서 사용자가 '링크'메뉴 항목에 액세스 할 필요가 없습니다. 이 함수는 뷰에서 해당 함수를 제거합니다.

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

비 관리자를위한 지금 업그레이드 메시지 비활성화

저는 실제로이 코드를 사용하지 않는 것을 좋아합니다. 대신 고객이 자신의 WordPress 설치를 업데이트 할 수있게하는 것이 좋습니다. 이렇게하면 사이트를 최신 상태로 유지하고 더 나은 코드를 작성해야합니다.

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

아카이브 페이지에 사용자 정의 게시물 유형 추가

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

로그인 페이지 및 관리자 용 사용자 정의 로고

/*-----------------------------------------------------------------------------------*/
/*  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

관리자의 '게시물'메뉴 이름을 원하는대로 변경하십시오 (예 : '기사')

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

smashingmagazine.com에 대한 크레딧

1
dani

다음 및 이전 링크에 사용자 정의 클래스 추가

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

게시물이 게시 될 때 숨겨진 사용자 정의 필드를 자동으로 추가하고 값을 게시물에 연결

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

wp_nav_menu에 로그인 링크 추가

//ADD LOGIN LINK TO MENU
add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);

function add_login_logout_link($items, $args) { 

        $loginoutlink = wp_loginout('index.php', false); 

        $items .= '<li>'. $loginoutlink .'</li>'; 

    return $items; 
}
1
Rev. Voodoo

Shortcode를 사용하여 bloginfo 호출 ...

function digwp_bloginfo_shortcode($atts) {

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

    return get_bloginfo($key);
}

add_shortcode('bloginfo', 'digwp_bloginfo_shortcode');

사용법 :

[bloginfo key='name']
0
jackreichert