워드프레스의 기능을 확대하자면 각종 플러그인을 설치해 사용할 수 있지만 작은 기능이라면 간단한 코드조각을 functions.php 파일에 추가하는 것이 좋습니다. 기능을 추가하기 위해서 플러그인을 늘리다보면 메모리를 차지하기 때문에 부담스럽기 때문입니다.
1. 플러그인 업데이트 금지 코드조각
플러그인의 기능을 다르게 하기 위해서 코드를 수정했다면 업데이트 할 경우 수정한 코드가 날아가버리죠. 원래는 플러그인 코드를 수정하면 안되지만 부득이 수정해서 사용할 필요가 있는 경우 어쩔 수 없습니다. 그런데 업데이트 알림이 있어서 수정한 것을 잊고 업데이트 하면 다시 수정해야 하죠. 그래서 이런 코드조각이 필요합니다.
전체 플러그인을 업데이트 금지할 경우는 다음의 코드조각을 사용합니다.
add_filter( 'pre_site_transient_update_plugins', create_function( '$a', "return null;" ) );
특정 플러그인만 업데이트 금지하려면 다음의 코드조각을 사용합니다.
function filter_plugin_updates( $value ) {
unset( $value->response['bbpress/bbpress.php'] );
return $value;
}
add_filter( 'site_transient_update_plugins', 'filter_plugin_updates' );
위의 경우 비비프레스의 업데이트를 방지한 것입니다. 그러니 특정 플러그인을 업데이트 방지하려면 대괄호 안에 플러그인 폴더/플러그인 메인 파일.php를 입력하면 됩니다.
2. 로그인 후 리다이렉트
워드프레스는 로그인 후에 관리자 화면으로 가는 것이 기본인데 이를 홈페이지로 이동하도록 하는 것이 좋습니다. 더구나 일반 사용자도 관리자 화면이 있어서 해당 사용자가 로그인 하면 이동하게 되죠. 로그인 후에 홈으로 이동하려면 다음의 코드 조각을 사용합니다.
add_action('wp_logout','go_home');
function go_home(){
wp_redirect( home_url() );
exit();
}
다른 페이지로 이동하도록 하려면 다음의 코드조각을 사용합니다.
function admin_default_page() {
return 'http://localhost/wordpress-the7/?page_id=12797';
}
add_filter('login_redirect', 'admin_default_page');
URL 부분에 원하는 페이지의 URL을 입력합니다. 우커머스나 다른 로그인 플러그인을 사용하는 경우 기본적으로 해당 플러그인의 계정 관리 페이지로 이동하게 돼있으니 위 코드는 작동하지 않습니다.
3. 로그아웃 후에 리다이렉트
add_action('wp_logout','go_home');
function go_home(){
wp_redirect( home_url() );
exit();
}
위의 로그인과 비슷합니다.
로그아웃 후에 현재 페이지로 그대로 머물도록 하려면 다음의 코드조각을 사용합니다.
function wpse_44020_logout_redirect($logouturl, $redir)
{
return $logouturl . '&redirect_to=http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
add_filter('logout_url', 'wpse_44020_logout_redirect', 10, 2);
4. 툴바 숨기기
워드프레스 관리자 화면의 사용자-당신의 프로필에서 툴바를 보이게 하거나 숨길 수 있는데 이는 관리자도 해당되죠. 그런데 관리자만 보이도록 하고 일반 사용자는 항상 보이지 않게 할 필요가 있습니다. 아래의 코드조각을 사용하면 됩니다.
add_action('after_setup_theme', 'remove_admin_bar');
function remove_admin_bar() {
if (!current_user_can('administrator') && !is_admin()) {
show_admin_bar(false);
}
}