17 WordPress Functions.php 파일 해킹
게시 됨: 2017-05-28모든 WordPress 코어 파일 중에서 functions.php 만큼 다재다능한 파일은 거의 없습니다. 상호 작용하는 방법을 알고 있다면 이 파일을 사용하면 몇 줄의 코드만으로 사이트에 모든 종류의 기능을 추가할 수 있습니다.
이 기사에서는 WordPress 함수 파일에 대해 알아야 할 모든 것과 이를 유용하게 사용하는 방법에 대해 설명합니다. 우리는 당신이 그것을 사용해야하는 이유, 그것은 무엇을 토론하고하지 않을 경우에 대한 것이다. 또한 플러그인을 설치하지 않고도 사이트 기능을 확장할 수 있는 17가지 유용한 파일 해킹을 소개합니다.
이 쇼를 도로에서 만나자!
WordPress 함수 파일 소개
functions.php 파일은 워드프레스의 핵심 파일 중 하나입니다. 즉, 전체 플랫폼에 전력을 공급하는 데 도움이 되며 사이트의 많은 기능 뒤에 있습니다.

또한 functions.php 파일을 임시변통 방법으로 사용하여 대시보드에 새 위젯을 추가하거나 설치를 위한 사용자 정의 이미지 크기와 같은 새로운 기능을 웹사이트에 구현할 수 있습니다. 단순 또는 임시 기능을 위한 WordPress 플러그인의 완벽한 대안입니다.
또한 전체 사이트에 영향을 미치는 '상위' functions.php 파일이 있지만 각 테마에는 고유한 하위 버전이 있습니다( style.css 파일과 유사). 이를 통해 사이트 전체에 영향을 미치지 않고 특정 테마에 대해서만 기능을 효과적으로 구현할 수 있습니다.
WordPress Functions.php 파일에 대한 17가지 파일 해킹
앞서 언급했듯이 각 테마는 자체 functions.php 파일과 함께 제공됩니다. 귀하의 항목을 광범위하게 수정하려는 경우 가장 좋은 조치는 업데이트 중에 변경 사항이 사라지지 않도록 자식 테마를 설정하는 것입니다. 또한 일이 잘못되어 변경 사항을 롤백해야 하는 경우를 대비하여 변경하기 전에 사이트를 백업하는 것이 좋습니다.
계속해서 FileZilla와 같은 FTP(파일 전송 프로토콜) 클라이언트를 사용하여 functions.php 파일에 액세스하여 wp-content/themes/ 디렉토리로 이동해야 합니다. 내부에서 각 테마에 대한 폴더를 찾을 수 있으며, 모든 폴더에는 다음과 같은 고유한 functions.php 파일이 있어야 합니다.

그것을 마우스 오른쪽 버튼으로 클릭하고 편집 이라는 옵션을 선택하면 기본 텍스트 편집기가 열립니다. 그 이상으로, 사업을 시작합시다!
1. WordPress에 새 관리자 추가
관리자 계정이 잠겨 비밀번호를 변경하거나 사이트에 액세스할 수 없는 경우가 있습니다. 이 조정을 사용하면 FTP를 통해 액세스 권한을 다시 얻을 수 있습니다.
이러한 모든 핵 및 스니펫과 마찬가지로 다음 코드를 복사하여 테마의 functions.php 파일 끝에 붙여넣고 변경 사항을 저장하기만 하면 됩니다.
function wpb_admin_account(){
$user = 'username';
$pass = 'password';
$email = '[email protected]';
if ( !username_exists( $user ) && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');사용자 이름, 비밀번호 및 이메일 이 표시된 값을 자신의 값으로 바꾸면 모든 설정이 완료됩니다!
2. 총 등록 사용자 수 표시
사이트의 사용자 수에 대해 세상에 자랑하고 싶었던 적이 있다면 이 조정을 통해 프런트 엔드에 간단한 수를 추가할 수 있습니다. 이 해킹은 또한 자랑할 권리 이상의 용도를 가지고 있습니다. 예를 들어, 사람들은 귀하의 사이트에 강력한 사용자 기반이 있다는 것을 알면 귀하의 사이트를 더 신뢰하게 될 수 있습니다. 다음은 스니펫입니다.
function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
add_shortcode('user_count', 'wpb_user_count');이것은 사이트에 등록된 총 사용자를 표시하기 위해 실제로 [user_count] 사용자 정의 단축 코드를 등록했기 때문에 약간 고급입니다. 이것은 복잡한 주제일 수 있지만 구현은 간단합니다!
3. 대시보드의 '환영 패널' 제거
환영 패널은 WordPress에 로그인하자마자 표시되는 대시보드 섹션이며 일반적으로 시작하기 위한 몇 가지 팁과 체크리스트가 포함되어 있습니다. 이 코드 조각을 사용하면 영구적으로 제거할 수 있습니다.
remove_action('welcome_panel', 'wp_welcome_panel');물론 환영 패널은 전혀 침습적이지 않지만, 플랫폼을 한동안 사용하고 더 이상 팁이 필요하지 않은 경우 약간 오래될 수 있습니다. 또한 한 줄의 코드만 있으면 되기 때문에 이 해킹에는 말 그대로 단점이 없습니다.
4. WordPress 버전 번호 숨기기
아시다시피, 사용 중인 테마에 따라 WordPress는 사이트 바닥글에 버전 번호를 표시하는 경향이 있습니다. 이 코드로 쉽게 제거할 수 있는 아주 작은 세부 사항입니다.
function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');이전 버전의 WordPress를 실행 중인 경우(물론 그렇게 해서는 안 됨), 이 조정은 덜 유혹적인 대상을 만드는 데 유용할 수 있습니다.
5. 대시보드 바닥글 수정
WordPress 대시보드에는 바닥글에 약간의 텍스트가 포함될 수 있으며, 종종 일종의 크레딧(보통 WordPress 자체)을 표시합니다. 그것은 당신이 눈이 멀었을 수도 있지만 이 해킹 은 간단한 해킹으로 사이트를 사용자 정의하거나 브랜드화할 수 있는 좋은 기회를 제공합니다. 해당 코드를 확인해 보겠습니다.
function remove_footer_admin () {
echo 'Hello world!';
}
add_filter('admin_footer_text', 'remove_footer_admin');이 해킹의 경우 Hello world를 교체해야 합니다 ! 포함하려는 링크를 포함하여 자신의 텍스트를 포함합니다.
6. 대시보드에 간단한 텍스트 위젯 추가
환영 위젯을 제거하여 대시보드에서 일부 공간을 정리하기로 결정했다면 자신의 위젯으로 교체할 수 있습니다. 이 코드를 사용하여 간단한 텍스트 위젯을 설정할 수 있습니다.
add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget('custom_widget', 'More Information', 'custom_dashboard_information');
}
function custom_dashboard_information() {
echo 'If you need help making changes to your site, you can always contact me via email at...';
}이 스니펫은 custom_dashboard_information 함수 내의 텍스트를 포함하여 대시보드에 추가 정보 라는 위젯을 추가합니다. 이 예에서는 일종의 연락처 위젯을 만들기로 선택했습니다. 이 위젯을 사용하여 클라이언트 웹사이트에 화이트 라벨을 지정하고 필요한 경우 연락을 유지하도록 상기시킬 수 있습니다.
7. 설치에 사용자 정의 이미지 크기 추가
WordPress를 사용하면 이미지를 업로드한 후 특정 크기로 크기를 조정할 수 있으며 기본적으로 몇 가지 사전 설정을 제공합니다. 이 코드를 사용하면 새 사전 설정을 추가하여 맞춤 치수를 설정하지 않아도 됩니다.
add_image_size( 'sidebar-thumbnail', 120, 120 );
원하는 만큼 새 크기를 추가할 수 있으며 사이트 전체에서 사용하는 특정 해상도가 있는 경우 특히 유용할 수 있습니다.
8. RSS 피드에 추천 이미지 추가
많은 사람들이 이것을 모르고 있지만 WordPress는 사이트에 대한 RSS 피드를 자동으로 생성합니다. 자신의 이미지를 사용하려는 경우 게시물에 대한 추천 이미지를 설정하는 것이 좋습니다. 이 코드를 사용하여 수행할 수 있습니다.
function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '
' . get_the_post_thumbnail($post->ID) .
'
' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');추천 이미지는 RSS 피드를 더 매력적으로 보이게 하는 데 큰 도움이 되며, 이는 클릭연결에 의존하는 모든 유형의 콘텐츠에 매우 중요합니다.

9. RSS 피드에서 카테고리 제외
WordPress RSS 피드 기능의 가장 좋은 점 중 하나는 사용자 정의가 가능하다는 것입니다. 이 코드를 사용하면 피드에서 특정 카테고리를 숨길 수 있으므로 추가할 콘텐츠를 선택할 수 있습니다.
function exclude_category($query) {
if ( $query->is_feed ) {
$query->set('cat', -2, -3');
}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');WordPress는 위의 코드에서 ID 번호(예: -2 및 -3 )에 따라 범주를 식별합니다. 따라서 이 해킹을 구현하기 전에 제거하려는 카테고리의 ID를 식별해야 합니다.
10. RSS 피드 비활성화
훌륭한 WordPress 기능이지만 RSS 사용에 전혀 관심이 없다면 다음 코드 스니펫을 사용하여 RSS를 완전히 비활성화할 수 있습니다.
function fb_disable_feed() {
wp_die( __('Sorry, we don't use RSS!') );
}
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);피드를 비활성화한 후 피드에 액세스하려는 사용자를 위한 작은 메시지가 코드에 포함되어 있음을 알 수 있습니다. 활성 상태로 유지하는 데 단점은 없지만 사용하지 않을 것이라고 확신하는 경우 이를 통해 완전히 끄고 잠재적으로 한두 사이클을 절약할 수 있습니다.
11. WordPress 로그인 오류 세부 정보 숨기기
너무 자세한 로그인 오류는 사이트에 액세스하는 데 필요한 정보를 원하지 않는 사용자에게 제공할 수 있습니다. 이 코드를 사용하면 WordPress는 로그인을 시도할 때 오류가 발생한 위치를 지정하지 않습니다.
function no_wordpress_errors(){
return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );이 해킹을 사용하면 공격자가 사이트에 액세스하려고 시도하는 것이 더 어려워지고 실제 사용자는 실수를 한 위치를 알아내는 데 문제가 없습니다. 모두 윈윈!
12. 사용자가 자신의 사용자 이름으로 로그인하도록 강제
많은 사람들이 동일한 이메일을 사용하여 모든 서비스에 가입하는 경향이 있습니다. 즉, 공격자가 이메일 주소를 아는 것만으로도 액세스를 시도할 수 있습니다. 이 코드를 사용하면 사용자가 사용자 이름만 사용하여 로그인하도록 합니다.
remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );
공정하게 말하면 사용자 이름도 많이 재사용되는 경향이 있지만 이 작은 조정은 여전히 보안을 개선하고 공격을 최소화하는 데 도움이 될 수 있습니다.
13. 게시물 발췌의 길이 변경
WordPress 블로그 색인은 일반적으로 독자에게 게시물의 목적에 대한 아이디어를 제공하기 위해 게시물의 간략한 발췌문을 표시합니다. 이 발췌 부분의 기본 길이를 변경하고 싶다면 여기에서 변경할 수 있습니다.
functionnew_excerpt_length($length) {
return 75;
}
add_filter('excerpt_length', 'new_excerpt_length');기본 길이는 55이지만 위의 코드에서는 조금 더 움직일 수 있도록 75로 늘렸습니다.
14. WordPress에서 원하는 모든 파일 형식을 업로드할 수 있도록 설정
기본적으로 WordPress에서는 .png 및 .jpg 와 같은 일반적인 미디어 형식을 포함하여 매우 제한된 범위의 파일 형식만 업로드할 수 있습니다 . 이 코드를 사용하면 더 많은 유형을 허용하도록 강제로 설치할 수 있습니다.
function my_myme_types($mime_types){
$mime_types['svg'] = 'image/svg+xml';
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);예를 들어 .svg 는 과거에 논의한 파일 유형입니다. 이 스니펫을 사용하면 플러그인 없이도 지원을 추가할 수 있습니다.
15. 자동 이미지 연결 비활성화
기본적으로 WordPress는 전체 버전을 가리키는 콘텐츠에 포함된 각 이미지에 대한 링크를 추가합니다. 이 코드를 사용하면 이 기능을 비활성화할 수 있습니다.
function wpb_imagelink_setup() {
$image_set = get_option( 'image_default_link_type' );
if ($image_set !== 'none') {
update_option('image_default_link_type', 'none');
}
}
add_action('admin_init', 'wpb_imagelink_setup', 10);그러나 각 개별 이미지를 편집하여 이 기능에 계속 액세스할 수 있습니다. 이 기능은 자동으로 작동하지 않도록 방지하는 것뿐입니다.
16. 위젯 준비 영역 추가
WordPress에는 사용할 수 있는 여러 위젯 준비 영역이 이미 포함되어 있지만 약간의 functions.php 마법을 사용하여 언제든지 새 영역을 추가할 수 있습니다. 이전 단축 코드 해킹과 마찬가지로 여기에서 개발자의 영역으로 들어가기 시작했습니다. 그러나 이것은 매우 도움이 될 수 있는 간단한 구현입니다.
function custom_sidebars() {
$args = array(
'id' => 'custom_sidebar',
'name' => __( 'Custom Widget', 'text_domain' ),
'description' => __( 'A custom widget, 'text_domain' ),
'before_title' => '
<h3 class="widget-title">',
'after_title' => '</h3>
',
'before_widget' => '
<aside id="%1$s" class="widget %2$s">',
'after_widget' => '</aside>
',
);
register_sidebar( $args );
}
add_action( 'widgets_init', 'custom_sidebars' );이 코드는 단지 새 위젯 영역을 '등록'할 뿐입니다. 바닥글과 같은 특정 테마 섹션에 대해서는 해당 파일을 편집하여 여전히 호출해야 합니다.
17. WordPress 검색 기능 비활성화
거의 모든 사이트에는 사용자가 길을 찾는 데 도움이 되는 검색 기능이 필요합니다. 그러나 단일 페이지 사이트를 구축하려는 경우에는 필요하지 않을 수 있습니다. 다음은 꺼진 경우 끌 수 있는 코드입니다.
function fb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
// to error
if ( $error == true )
$query->is_404 = true;
}
}
add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );이 기능을 비활성화하기 전에 사이트의 사용성에 큰 영향을 줄 수 있으므로 필요하지 않다는 것을 100% 확신해야 합니다. 물론, 언제든지 코드를 제거하여 사이트에서 검색을 복원할 수 있지만 확실하지 않은 경우 주의를 기울이고 끄지 마십시오!
결론
functions.php 파일은 WordPress 도구 상자에서 가장 강력한 자산 중 하나입니다. 몇 줄의 코드로 모든 종류의 기능을 추가할 수 있을 뿐만 아니라 사이트가 작동하는 데도 중요합니다(여기서 수행한 작업 참조).
Divi 사용자인 경우 functions.php 파일을 사용하면 추가 플러그인을 설정 하지 않고도 사이트에 여러 보완 기능을 추가할 수 있습니다. 이는 항상 승리입니다.
이러한 WordPress 기능 파일 해킹에 대해 질문이 있습니까? 그렇다면 아래 의견 섹션에서 질문하십시오!
MchlSkhrv / shutterstock.com의 기사 축소판 이미지
