워드프레스의 모든 테마에는 function.php을 이용해서 각종 유용한 기능들을 포함한다.

이 파일은 테마 내에서 플러그인처럼 자동으로 작동하게 되는데, 워드프레스의 코어 파일을 편집할 필요없이 자신이 필요한 기능을 자유롭게 개발하여 추가할 수 있다.

이 포스팅은 워드프레스의 function.php에 추가하여 유용하게 사용할 수 있는 Trick에 대해 작성한 글이다.

참고 : 이 문서는 워드 프레스 테마 개발자를 대상으로하며 PHP 지식이 필요하다.

 

1. 구글 분석 코드 넣기

간단하게 아래의 코드를 function.php 파일에 붙여넣고, 코드 내에 구글 웹 로그 분석 스크립트를 삽입하면 끝.

모든 페이지의 wp_footer 문자열이 있는 소스에 자동으로 입력한 코드를 삽입하게 된다.


// 구글 분석 코드를 여기에 기입

 

2. 워드프레스 버전 제거하기

워드프레스는 오픈소스다보니, 다양한 취약점이 번번히 생기기 마련이다. 그래서, 항상 워드프레스를 최신버전으로 업데이트를 해야한다.

자신의 블로그의 소스를 보면, 자신의 워드프레스 버전이 표시가 되는데 이 부분을 삭제하여 조금이라도 안전하게 할 수 있지 않을까?

플러그인을 찾는다면 →  https://wordpress.org/plugins/better-delete-revision/

function wp_remove_version() {
return '';
}
add_filter('the_generator', 'wp_remove_version');
function remove_cssjs_ver( $src ) {
    if( strpos( $src, '?ver=' ) || strpos( $src, '&ver=' ) )
        $src = remove_query_arg( 'ver', $src );
    return $src;
}
add_filter( 'style_loader_src', 'remove_cssjs_ver', 10, 2 );
add_filter('script_loader_src', 'remove_cssjs_ver', 10, 2 );

 

3. 워드프레스 검색기능 차단하기

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;" ) );

 

4. 워드프레스 이미지 퀄리티 수정

워드프레스를 사용하는 대부분의 사람들이 개인 웹 호스팅을 이용하는 사람이 많다고 생각한다.

개인 웹 호스팅에서 용량과 트래픽을 줄이기 위해, 블로그에 게재하는 이미지에 대하여 퀄리티를 수정하는 방법을 사용하는 법에 대한 코드이다.

add_filter( 'jpeg_quality', 'wp_jpeg_quality' );
function wp_jpeg_quality() {
   return 80; // 80을 자신의 원하는 %로 수정하면 된다.
}

 

5. 댓글의 HTML 기능을 제거

워드프레스의 댓글 부분은 기본적인 HTML 태그를 사용할 수 있도록 만들어져 있다. 또한, 하이퍼 링크를 사용하여 링크를 남길 수 있다.

만약 워드프레스 댓글에 HTML를 비허용하고자 하는 경우 다음 코드를 추가하면 된다.

add_filter( 'pre_comment_content', 'wp_specialchars' );

비허용하는 경우, 테마 댓글 부분도 수정해야할 듯 싶다. 대부분의 기본 무료테마에는 댓글에 사용가능한 HTML 태그가 적혀있기 때문

+ 16.06.18 (토) 에 추가된 내용입니다.

6. 소스코드의 표시되는 Yoast 제거하기

Yoats SEO 플러그인을 사용하면, 소스코드에 다음과 같은 라인이 추가가 되는 것을 알 수 있다.

<!– This site is opti­mized with the Yoast Word­Press SEO plugin –>

신경 쓰이는 이 부분을 제거하려면 다음 코드를 추가하면 된다.

// Remove All Yoast HTML Comments
if (defined('WPSEO_VERSION')){
 add_action('get_header',function (){ ob_start(function ($o){
 return preg_replace('/\n?<.*?yoast.*?>/mi','',$o); }); });
 add_action('wp_head',function (){ ob_end_flush(); }, 999);
}

yoast_remove

 

+ 아래부터 17.08.07 (월) 에 추가된 내용입니다.

 

7. emojicon 제거

function disable_wp_emojicons() {
// all actions related to emojis
   remove_action( 'admin_print_styles', 'print_emoji_styles' );
   remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
   remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
   remove_action( 'wp_print_styles', 'print_emoji_styles' );
   remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
   remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
   remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
// filter to remove TinyMCE emojis
}
add_action( 'init', 'disable_wp_emojicons' );

8. Meta 제거

//Remove All Meta Generators
function remove_meta_generators($html) {
     $pattern = '/<meta name(.*)=(.*)"generator"(.*)>/i';
     $html = preg_replace($pattern, '', $html);
     return $html;
}

function remove_meta_generators2($html) {
	$pattern = '/<meta name(.*)=(.*)"SKYPE_TOOLBAR"(.*)>/i';
	$html = preg_replace($pattern, '', $html);
	return $html;
}

function clean_meta_generators($html) {
	ob_start('remove_meta_generators');
	ob_start('remove_meta_generators2');
  }
add_action('get_header', 'clean_meta_generators', 100);
add_action('wp_footer', function(){ ob_end_flush(); }, 100);

 

9. Google Jquery CDN 사용

// google jquery CDN caching
function wpfme_jquery_enqueue() {
	wp_deregister_script('jquery');
	wp_register_script('jquery', "http" . ($_SERVER['SERVER_PORT'] == 443 ? "s" : "") . "://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js", false, null);
	wp_enqueue_script('jquery');
}
if (!is_admin()) add_action("wp_enqueue_scripts", "wpfme_jquery_enqueue", 11);

 

포스팅에 대해 표현해보세요! 
Like
Love
Haha
Wow
Sad
Angry
You have react­ed on”[팁] 워드프레스 function.php 에 유용한 기능을&n…” A few sec­onds ago
알림 받기
다음과 같은 방식으로
guest
0 Comments
Inline Feedbacks
View all comments
Menu
0
Would love your thoughts, please comment.x
()
x