https://kilho.net/archives/mypost/786
https://kilho.net/
워드프레스는 그누보드 뿐만 아니라 모든 종류의 데이타베이스와 연결이 가능합니다.
워드프레스가 Mysql 을 지원하긴 하지만, 코어의 뼈대가 아닌 부분에는 어떤 종류의 작업을 해도 무방하니깐요.
그누보드의 게시글을 워드프레스에서 읽을려면 간단합니다.
global $wpdb;
$sql = " select wr_id, wr_subject from g5_write_notice where wr_subject like '".$test."'";
$arr_rs = $wpdb->get_results(esc_sql($sql),ARRAY_A);
foreach($arr_rs as $r){
echo $r['wr_subject'].'
';
}
php7 버전 에서는 mysqli_real_escape_string($link,$sql) 를 사용해야 하지만 wordpress 로 개발했다면, 그런 부분 걱정없이 esc_sql 함수로 sql injection 을 막을 수 있습니다.
워드프레스가 그누보드의 컨텐츠를 바라보는 것은 가능하지만, 그누보드 회원이 워드프레스의 로그인을 하게 할려면 좀 더 복잡한 과정을 걸쳐야 합니다.
그누보드에서 로그아웃할 때 워드프레스에서도 로그아웃을 하게 하고, 반대의 경우도 같이 이벤트를 매핑 시켜야 하겠죠.
따라서 워드프레스 그누보드 연동은 가능하지만, 비효율적이어서 가능하면 워드프레스 하나로 통일 하는 편이 구조적으로 좋습니다.
그누보드와 워드프레스는 로그인을 할 때 서로 다른 과정을 걸치게 됩니다.
그누보드는 login_check.php 에서 db에서 ID PWD 확인하고 세션을 만들어서 로그인 한다면, 워드프레스는 훨씬 복잡한 방식으로 로그인하기 때문에 이것을 한 덩어리에 넣고 코딩할 생각을 하면 안 됩니다.
워드프레스는 무엇보다 CORE 는 손을 데면 안 되기 때문에 wp-login.php 파일을 손대지 않으면서 작업을 하려면 wp_authenticate 이벤트를 후킹해야 합니다.
function customcode($username, $password ) {
if (!empty($username) && !empty($password)) {
// your code
}
}
add_action('wp_authenticate', 'customcode', 30, 2)
워드프레스에 로그인 시도했을 때 기본적인 wp_users 에 있는 회원 뿐만 아니라 그누보드인 g5_member 에 있는 회원까지 같이 채크할려면..
include "./wp-load.php";
function g5_login_sync($username, $password ) {
if (!empty($username) && !empty($password)) {
$sql = " select count(*) from g5_member where mb_id = '".esc_sql($username)."' and mb_password = '".esc_sql($password)."' ";
$cnt = $wpdb->get_var($sql);
if($cnt > 0){
$user=get_user_by('login',$username);
wp_signon( array( 'user_login' => $username ) );
clean_user_cache($user->ID);
wp_clear_auth_cookie();
wp_set_current_user($user->ID);
wp_set_auth_cookie($user->ID, true, false);
update_user_caches($user);
header("Location: /wp-admin");
}
}
}
add_action('wp_authenticate', 'g5_login_sync', 30, 2);
이런 식으로 wordpress 로그인을 wp_signon 으로 만들면서 로그인을 해야 합니다.
워드프레스는 무엇이던 가능하지만 그것을 가능하게 하려면 절차에 맞추어 진행해야하며, 클린하고 올바르지 않은 코딩을 하게 되면 아주 지저분한 상황이 벌어지게 되기 때문에, 코딩 스타일을 많이 연습해야 할 것 같습니다.
'IT' 카테고리의 다른 글
서버 certbot renew, crontab (0) | 2024.04.12 |
---|---|
windows 11 인터넷 간헐적 끊김 현상 (0) | 2024.04.11 |
워드프레스 파일 퍼미션 (0) | 2024.04.06 |
mysql 백업 및 복구 (0) | 2024.04.06 |
절전모드 해제 (0) | 2024.04.06 |