MangBoard Telegram 알림 플러그인 개발 기록

2026.04.28

# MangBoard Telegram 알림 플러그인


MangBoard 게시판에 사용자가 새글, 답변, 댓글을 등록하면 텔레그램으로 관리자에게 실시간 알림을 전송하는 WordPress 플러그인입니다.


| 항목 | 내용 |

|------|------|

| 플러그인명 | MangBoard Telegram Notification |

| 버전 | 1.0.0 |

| 파일 위치 | `wp-content/plugins/mangboard-telegram-notifications/` |

| 메인 파일 | `mangboard-telegram-notifications.php` (488줄) |

| 의존 | MangBoard WP 플러그인 v2.4.x, WordPress 6.x, PHP 8.x |

| DB 옵션 키 | `wmbt_settings` (wp_options 테이블) |


---


# # 개발 연혁


```mermaid

timeline

    title 개발 연혁

    1차 : 요구사항 분석 및 설계 — MangBoard 훅 분석

         : mbw_board_api_footer, mbw_comment_api_footer 발견

    2차 : mu-plugin으로 초기 개발

         : wp-content/mu-plugins/ 에 배치

    3차 : 일반 플러그인으로 전환

         : wp-content/plugins/ 로 이동

         : Telegram 알림 최상위 메뉴 추가

    4차 : URL 생성 버그 수정

         : mbw_get_url() 네이티브 함수 호출로 해결

```


---


# # 개발 연혁


```mermaid

flowchart TD

    A["1차: 요구사항 분석 및 설계"] --> B["MangBoard 훅 분석"]

    B --> C["mbw_board_api_footer 발견"]

    B --> D["mbw_comment_api_footer 발견"]

    A --> E["2차: mu-plugin으로 초기 개발"]

    E --> F["wp-content/mu-plugins/ 에 배치"]

    F --> G["3차: 일반 플러그인으로 전환"]

    G --> H["wp-content/plugins/ 로 이동"]

    H --> I["Telegram 알림 최상위 메뉴 추가"]

    I --> J["4차: URL 생성 버그 수정"]

    J --> K["mbw_get_url() 네이티브 함수 호출로 해결"]


    style A fill:#E3F2FD

    style G fill:#C8E6C9

    style K fill:#C8E6C9

```


---


# # 알림 대상 이벤트


```mermaid

flowchart LR

    subgraph Board["게시글 Hook"]

        H1["mbw_board_api_footer"]

        W["write = 새글"]

        R["reply = 답변"]

    end


    subgraph Comment["댓글 Hook"]

        H2["mbw_comment_api_footer"]

        CW["write = 댓글"]

        CR["reply = 댓글 답변"]

    end


    W --> N1["wmbt_notify_board()"]

    R --> N1

    CW --> N2["wmbt_notify_comment()"]

    CR --> N2


    N1 --> TG["Telegram Bot API"]

    N2 --> TG

```


| 이벤트 | MangBoard Hook | 조건 | 텔레그램 메시지 |

|--------|---------------|------|----------------|

| 새글 등록 | `mbw_board_api_footer` | `board_action === 'write'` | 게시판명, 제목, 작성자, 시간, 글 링크 |

| 답변 등록 | `mbw_board_api_footer` | `board_action === 'reply'` | 게시판명, 원글 제목, 답변 제목, 작성자, 시간, 글 링크 |

| 댓글 등록 | `mbw_comment_api_footer` | `board_action === 'write'` | 게시판명, 원글 제목, 댓글 내용(150자), 작성자, 시간, 글 링크 |

| 댓글 답변 | `mbw_comment_api_footer` | `board_action === 'reply'` | 게시판명, 원글 제목, 대상 댓글, 답변 내용, 작성자, 시간, 글 링크 |


---


# # 설정 방법


```mermaid

flowchart LR

    A["1. 플러그인 활성화"] --> B["2. @BotFather 봇 생성"]

    B --> C["3. Bot Token 발급"]

    C --> D["4. 봇에게 메시지 전송"]

    D --> E["5. Chat ID 조회"]

    E --> F["6. 관리자 설정 입력"]

    F --> G["7. 테스트 메시지 확인"]

```


## # 1. 플러그인 활성화


**WordPress 관리자 > 플러그인** 에서 **MangBoard Telegram Notification** 활성화


## # 2. 텔레그램 봇 생성 (최초 1회)


1. 텔레그램에서 [@BotFather](https://t.me/BotFather) 검색

2. `/newbot` 명령으로 봇 생성

3. 봇 이름과 username 설정

4. 발급받은 **Bot Token** 저장


## # 3. Chat ID 획득


1. 텔레그램에서 생성한 봇 검색 후 **시작하기**

2. 봇에게 아무 메시지 보내기 (예: "안녕")

3. 관리자 설정 페이지에서 **"Chat ID 조회"** 버튼 클릭

4. 표시된 Chat ID 숫자를 복사


## # 4. 관리자 설정


**WordPress 관리자 > Telegram 알림** 메뉴에서 설정:


| 항목 | 설명 | 현재값 |

|------|------|--------|

| 알림 사용 | 전체 ON/OFF | 활성화 |

| Bot Token | 텔레그램 봇 API 토큰 | `<YOUR_BOT_TOKEN>` |

| Chat ID | 알림 수신 채팅 ID | `<YOUR_CHAT_ID>` |

| 새글 등록 | 새글 알림 ON/OFF | 활성화 |

| 답변 등록 | 답변 알림 ON/OFF | 활성화 |

| 댓글 등록 | 댓글 알림 ON/OFF | 활성화 |

| 댓글 답변 | 댓글 답변 알림 ON/OFF | 활성화 |


## # 5. 연결 테스트


설정 페이지에서 **"테스트 메시지 전송"** 버튼으로 즉시 확인 가능.


---


# # 알림 메시지 포맷


## # 새글 등록


```

📢 새글이 등록되었습니다


📋 게시판: Q&A 게시판

📝 제목: RTX 4070 Super 조립 문의

👤 작성자: 홍길동

🕐 시간: 2026-04-20 18:30:00

🔗 글 보기

```


## # 답변 등록


```

💬 답변이 등록되었습니다


📋 게시판: Q&A 게시판

📌 원글: RTX 4070 Super 조립 문의

📝 답변 제목: RE: RTX 4070 Super 조립 문의

👤 작성자: 관리자

🕐 시간: 2026-04-20 18:35:00

🔗 글 보기

```


## # 댓글 등록


```

💬 새 댓글이 등록되었습니다


📋 게시판: Q&A 게시판

📌 원글: RTX 4070 Super 조립 문의

💬 댓글: 좋은 정보 감사합니다!

👤 작성자: 김철수

🕐 시간: 2026-04-20 18:40:00

🔗 글 보기

```


## # 댓글 답변


```

↩️ 댓글에 답변이 등록되었습니다


📋 게시판: Q&A 게시판

📌 원글: RTX 4070 Super 조립 문의

💬 대상 댓글: 좋은 정보 감사합니다!

↩️ 답변: 네, 체크해드리겠습니다

👤 작성자: 관리자

🕐 시간: 2026-04-20 18:45:00

🔗 글 보기

```


---


# # 대상 게시판 및 URL 패턴


MangBoard에 등록된 게시판과 생성되는 알림 URL 예시:


| 게시판 | board_name | 스킨 | 알림 URL 예시 |

|--------|-----------|------|---------------|

| Q&A 게시판 | `qna` | bbs_qanda_m1 (커스텀) | `/qna/?board_name=qna&board_pid=22&mode=view` |

| 견적 구매 상담 | `estimate_qna` | bbs_basic | `/estimate-qna/?board_name=estimate_qna&board_pid=1&mode=view` |

| 정보 문서 | `mangboard_tips` | bbs_basic | `/info/?board_name=mangboard_tips&board_pid=1&mode=view` |

| 상품 Q&A | `commerce_product_qa` | bbs_basic | `/m_product_qa/?board_name=commerce_product_qa&board_pid=5&mode=view` |

| 상품 리뷰 | `commerce_product_review` | bbs_basic | `/m_product_review/?board_name=commerce_product_review&board_pid=4&mode=view` |

| 공지사항 | `notics` | bbs_notice_m1 | `/notics/?board_name=notics&board_pid=1&mode=view` |


> URL은 MangBoard의 `mbw_get_url()` 네이티브 함수로 생성하므로, 새 게시판이 추가되어도 자동으로 정확한 URL이 생성됩니다.


---


# # 기술 구조


## # 파일 구조


```

wp-content/plugins/mangboard-telegram-notifications/

└── mangboard-telegram-notifications.php    # 단일 파일 플러그인 (488줄)

```


## # 아키텍처


```mermaid

flowchart TD

    A["사용자 게시글/댓글 작성"] --> B["MangBoard API"]


    B --> B1["api/mb-board.php (게시글 작성/답변)"]

    B --> B2["api/mb-comment.php (댓글 작성/답변)"]


    B1 -->|"DB 저장 완료"| H1["do_action 'mbw_board_api_footer'"]

    B2 -->|"DB 저장 완료"| H2["do_action 'mbw_comment_api_footer'"]


    H1 --> N1["wmbt_notify_board()"]

    H2 --> N2["wmbt_notify_comment()"]


    subgraph Board["wmbt_notify_board() 내부"]

        direction LR

        BA["action 확인"] --> BB["ON/OFF 확인"] --> BC["게시글 조회"] --> BD["URL 생성"]

    end


    subgraph Cmt["wmbt_notify_comment() 내부"]

        direction LR

        CA["action 확인"] --> CB["ON/OFF 확인"] --> CC["댓글 조회"] --> CD["원글 제목"]

    end


    N1 --> Board

    N2 --> Cmt


    Board --> S["wmbt_send_telegram()"]

    Cmt --> S


    S --> R["wp_remote_post()"]

    R --> TG["Telegram Bot API sendMessage"]

```


## # 핵심 함수


| 함수 | 역할 |

|------|------|

| `wmbt_notify_board()` | 게시글 작성/답변 시 텔레그램 알림 전송 |

| `wmbt_notify_comment()` | 댓글 작성/답변 시 텔레그램 알림 전송 |

| `wmbt_send_telegram()` | 설정값 검증 후 `wmbt_send_telegram_raw()` 호출 |

| `wmbt_send_telegram_raw()` | Telegram Bot API `sendMessage` 호출 |

| `wmbt_build_post_url()` | MangBoard `mbw_get_url()` 호출로 게시글 URL 생성 |

| `wmbt_get_board_display_name()` | `mb_boards.description` 에서 게시판 표시명 조회 |

| `wmbt_clean_text()` | HTML 태그 제거 + 텍스트 길이 제한 (프리뷰용) |

| `wmbt_settings_page()` | 관리자 설정 페이지 HTML 렌더링 |

| `wmbt_sanitize_settings()` | 설정값 검증 및 저장 |


## # DB 스키마


설정은 `wp_options` 테이블의 단일 row에 JSON으로 저장:


```sql

SELECT * FROM wp_options WHERE option_name = 'wmbt_settings';

```


```json

{

  "bot_token": "<YOUR_BOT_TOKEN>",

  "chat_id": "<YOUR_CHAT_ID>",

  "enabled": "1",

  "notify_write": "1",

  "notify_reply": "1",

  "notify_comment": "1",

  "notify_creply": "1"

}

```


## # DB 쿼리 (참조용)


알림에서 참조하는 MangBoard 테이블:


```sql

-- 게시판 목록 (게시판명, 표시명, WP 페이지 ID)

SELECT pid, board_name, description, post_id, board_type, skin_name

FROM mb_boards WHERE board_type = 'board';


-- 게시글 데이터 (제목, 작성자, 등록일)

SELECT title, user_name, reg_date FROM mb_{board_name} WHERE pid = {게시글_pid};


-- 댓글 데이터 (내용, 작성자, 등록일)

SELECT content, user_name, reg_date FROM mb_{board_name}_comment WHERE pid = {댓글_pid};

```


---


# # 다른 사이트에 설치하는 방법


## # 1. 플러그인 복사


```bash

# 대상 WordPress의 wp-content/plugins/ 에 복사

cp -r mangboard-telegram-notifications/ /path/to/wordpress/wp-content/plugins/

```


## # 2. 플러그인 활성화


**WordPress 관리자 > 플러그인** 에서 활성화


## # 3. 설정 입력


**WordPress 관리자 > Telegram 알림** 메뉴에서:


1. Bot Token 입력 (새 봇 생성 필요시 @BotFather 참고)

2. Chat ID 입력 ("Chat ID 조회" 버튼으로 확인)

3. 알림 항목 선택

4. **설정 저장**

5. **"테스트 메시지 전송"** 으로 연결 확인


## # 전제 조건


- WordPress 6.x 이상

- PHP 8.x 이상

- MangBoard WP 플러그인 v2.4.x 이상 설치됨

- 서버에서 `api.telegram.org` 로의 아웃바운드 HTTPS 통신 허용


---


# # 트러블슈팅


## # 알림이 오지 않을 때


```mermaid

flowchart TD

    Problem["알림이 오지 않음"] --> Test{"테스트 메시지 전송 성공?"}


    Test -->|"YES"| Hook{"실제 이벤트 시 알림 오는지?"}

    Test -->|"NO"| Token{"Bot Token 올바른가?"}


    Token -->|"NO"| FixToken["Bot Token 재입력"]

    Token -->|"YES"| ChatID{"Chat ID 올바른가?"}


    ChatID -->|"NO"| FixChatID["Chat ID 재조회"]

    ChatID -->|"YES"| Network{"서버에서 api.telegram.org 접근 가능?"}


    Network -->|"NO"| FixNet["방화벽/아웃바운드 확인"]

    Network -->|"YES"| Log["debug.log에서 WMBT 확인"]


    Hook -->|"YES"| Done["정상 동작"]

    Hook -->|"NO"| Log


    Log --> FixLog["에러 메시지 확인 후 조치"]


    style Problem fill:#FFCDD2

    style Done fill:#C8E6C9

```


1. **설정 확인**: Telegram 알림 메뉴에서 "테스트 메시지 전송" 시도

2. **로그 확인**: WordPress debug log에서 `[WMBT]` 키워드 검색

   ```bash

   docker exec <WP_CONTAINER> grep WMBT /var/www/html/wp-content/debug.log

   ```

3. **Bot Token/Chat ID 재확인**: 봇이 해당 채팅에 메시지를 보낼 권한이 있는지 확인


## # URL이 "삭제되었거나 존재하지 않는 내용"일 때


- `mbw_get_url()` 이 MangBoard 네이티브 함수이므로, 게시판 설정 자체에 문제가 없다면 정상 동작

- MangBoard 게시판의 `post_id` (WordPress 페이지 ID)가 올바르게 설정되어 있는지 확인


## # 관리자 메뉴에 "Telegram 알림"이 보이지 않을 때


- 플러그인이 **활성화** 상태인지 확인

- `manage_options` 권한을 가진 관리자 계정으로 로그인되어 있는지 확인


---


# # 참고


- [MangBoard 텔레그램 알림봇 플러그인 (공식 스토어)](https://www.mangboard.com/store/?vid=189) — 유료 플러그인 (33,000원)

- [Telegram Bot API 공식 문서](https://core.telegram.org/bots/api)

- [@BotFather](https://t.me/BotFather) — 텔레그램 봇 생성/관리


▣ 마크 다운(Markdown) 문서(Mermaid 포함) 지원합니다.
글보기
제목MangBoard Telegram 알림 플러그인 개발 기록2026-04-28 15:29
카테고리 기술노트
작성자 Level 10

# MangBoard Telegram 알림 플러그인


MangBoard 게시판에 사용자가 새글, 답변, 댓글을 등록하면 텔레그램으로 관리자에게 실시간 알림을 전송하는 WordPress 플러그인입니다.


| 항목 | 내용 |

|------|------|

| 플러그인명 | MangBoard Telegram Notification |

| 버전 | 1.0.0 |

| 파일 위치 | `wp-content/plugins/mangboard-telegram-notifications/` |

| 메인 파일 | `mangboard-telegram-notifications.php` (488줄) |

| 의존 | MangBoard WP 플러그인 v2.4.x, WordPress 6.x, PHP 8.x |

| DB 옵션 키 | `wmbt_settings` (wp_options 테이블) |


---


## 개발 연혁


```mermaid

timeline

    title 개발 연혁

    1차 : 요구사항 분석 및 설계 — MangBoard 훅 분석

         : mbw_board_api_footer, mbw_comment_api_footer 발견

    2차 : mu-plugin으로 초기 개발

         : wp-content/mu-plugins/ 에 배치

    3차 : 일반 플러그인으로 전환

         : wp-content/plugins/ 로 이동

         : Telegram 알림 최상위 메뉴 추가

    4차 : URL 생성 버그 수정

         : mbw_get_url() 네이티브 함수 호출로 해결

```


---


## 개발 연혁


```mermaid

flowchart TD

    A["1차: 요구사항 분석 및 설계"] --> B["MangBoard 훅 분석"]

    B --> C["mbw_board_api_footer 발견"]

    B --> D["mbw_comment_api_footer 발견"]

    A --> E["2차: mu-plugin으로 초기 개발"]

    E --> F["wp-content/mu-plugins/ 에 배치"]

    F --> G["3차: 일반 플러그인으로 전환"]

    G --> H["wp-content/plugins/ 로 이동"]

    H --> I["Telegram 알림 최상위 메뉴 추가"]

    I --> J["4차: URL 생성 버그 수정"]

    J --> K["mbw_get_url() 네이티브 함수 호출로 해결"]


    style A fill:#E3F2FD

    style G fill:#C8E6C9

    style K fill:#C8E6C9

```


---


## 알림 대상 이벤트


```mermaid

flowchart LR

    subgraph Board["게시글 Hook"]

        H1["mbw_board_api_footer"]

        W["write = 새글"]

        R["reply = 답변"]

    end


    subgraph Comment["댓글 Hook"]

        H2["mbw_comment_api_footer"]

        CW["write = 댓글"]

        CR["reply = 댓글 답변"]

    end


    W --> N1["wmbt_notify_board()"]

    R --> N1

    CW --> N2["wmbt_notify_comment()"]

    CR --> N2


    N1 --> TG["Telegram Bot API"]

    N2 --> TG

```


| 이벤트 | MangBoard Hook | 조건 | 텔레그램 메시지 |

|--------|---------------|------|----------------|

| 새글 등록 | `mbw_board_api_footer` | `board_action === 'write'` | 게시판명, 제목, 작성자, 시간, 글 링크 |

| 답변 등록 | `mbw_board_api_footer` | `board_action === 'reply'` | 게시판명, 원글 제목, 답변 제목, 작성자, 시간, 글 링크 |

| 댓글 등록 | `mbw_comment_api_footer` | `board_action === 'write'` | 게시판명, 원글 제목, 댓글 내용(150자), 작성자, 시간, 글 링크 |

| 댓글 답변 | `mbw_comment_api_footer` | `board_action === 'reply'` | 게시판명, 원글 제목, 대상 댓글, 답변 내용, 작성자, 시간, 글 링크 |


---


## 설정 방법


```mermaid

flowchart LR

    A["1. 플러그인 활성화"] --> B["2. @BotFather 봇 생성"]

    B --> C["3. Bot Token 발급"]

    C --> D["4. 봇에게 메시지 전송"]

    D --> E["5. Chat ID 조회"]

    E --> F["6. 관리자 설정 입력"]

    F --> G["7. 테스트 메시지 확인"]

```


### 1. 플러그인 활성화


**WordPress 관리자 > 플러그인** 에서 **MangBoard Telegram Notification** 활성화


### 2. 텔레그램 봇 생성 (최초 1회)


1. 텔레그램에서 [@BotFather](https://t.me/BotFather) 검색

2. `/newbot` 명령으로 봇 생성

3. 봇 이름과 username 설정

4. 발급받은 **Bot Token** 저장


### 3. Chat ID 획득


1. 텔레그램에서 생성한 봇 검색 후 **시작하기**

2. 봇에게 아무 메시지 보내기 (예: "안녕")

3. 관리자 설정 페이지에서 **"Chat ID 조회"** 버튼 클릭

4. 표시된 Chat ID 숫자를 복사


### 4. 관리자 설정


**WordPress 관리자 > Telegram 알림** 메뉴에서 설정:


| 항목 | 설명 | 현재값 |

|------|------|--------|

| 알림 사용 | 전체 ON/OFF | 활성화 |

| Bot Token | 텔레그램 봇 API 토큰 | `<YOUR_BOT_TOKEN>` |

| Chat ID | 알림 수신 채팅 ID | `<YOUR_CHAT_ID>` |

| 새글 등록 | 새글 알림 ON/OFF | 활성화 |

| 답변 등록 | 답변 알림 ON/OFF | 활성화 |

| 댓글 등록 | 댓글 알림 ON/OFF | 활성화 |

| 댓글 답변 | 댓글 답변 알림 ON/OFF | 활성화 |


### 5. 연결 테스트


설정 페이지에서 **"테스트 메시지 전송"** 버튼으로 즉시 확인 가능.


---


## 알림 메시지 포맷


### 새글 등록


```

📢 새글이 등록되었습니다


📋 게시판: Q&A 게시판

📝 제목: RTX 4070 Super 조립 문의

👤 작성자: 홍길동

🕐 시간: 2026-04-20 18:30:00

🔗 글 보기

```


### 답변 등록


```

💬 답변이 등록되었습니다


📋 게시판: Q&A 게시판

📌 원글: RTX 4070 Super 조립 문의

📝 답변 제목: RE: RTX 4070 Super 조립 문의

👤 작성자: 관리자

🕐 시간: 2026-04-20 18:35:00

🔗 글 보기

```


### 댓글 등록


```

💬 새 댓글이 등록되었습니다


📋 게시판: Q&A 게시판

📌 원글: RTX 4070 Super 조립 문의

💬 댓글: 좋은 정보 감사합니다!

👤 작성자: 김철수

🕐 시간: 2026-04-20 18:40:00

🔗 글 보기

```


### 댓글 답변


```

↩️ 댓글에 답변이 등록되었습니다


📋 게시판: Q&A 게시판

📌 원글: RTX 4070 Super 조립 문의

💬 대상 댓글: 좋은 정보 감사합니다!

↩️ 답변: 네, 체크해드리겠습니다

👤 작성자: 관리자

🕐 시간: 2026-04-20 18:45:00

🔗 글 보기

```


---


## 대상 게시판 및 URL 패턴


MangBoard에 등록된 게시판과 생성되는 알림 URL 예시:


| 게시판 | board_name | 스킨 | 알림 URL 예시 |

|--------|-----------|------|---------------|

| Q&A 게시판 | `qna` | bbs_qanda_m1 (커스텀) | `/qna/?board_name=qna&board_pid=22&mode=view` |

| 견적 구매 상담 | `estimate_qna` | bbs_basic | `/estimate-qna/?board_name=estimate_qna&board_pid=1&mode=view` |

| 정보 문서 | `mangboard_tips` | bbs_basic | `/info/?board_name=mangboard_tips&board_pid=1&mode=view` |

| 상품 Q&A | `commerce_product_qa` | bbs_basic | `/m_product_qa/?board_name=commerce_product_qa&board_pid=5&mode=view` |

| 상품 리뷰 | `commerce_product_review` | bbs_basic | `/m_product_review/?board_name=commerce_product_review&board_pid=4&mode=view` |

| 공지사항 | `notics` | bbs_notice_m1 | `/notics/?board_name=notics&board_pid=1&mode=view` |


> URL은 MangBoard의 `mbw_get_url()` 네이티브 함수로 생성하므로, 새 게시판이 추가되어도 자동으로 정확한 URL이 생성됩니다.


---


## 기술 구조


### 파일 구조


```

wp-content/plugins/mangboard-telegram-notifications/

└── mangboard-telegram-notifications.php    # 단일 파일 플러그인 (488줄)

```


### 아키텍처


```mermaid

flowchart TD

    A["사용자 게시글/댓글 작성"] --> B["MangBoard API"]


    B --> B1["api/mb-board.php (게시글 작성/답변)"]

    B --> B2["api/mb-comment.php (댓글 작성/답변)"]


    B1 -->|"DB 저장 완료"| H1["do_action 'mbw_board_api_footer'"]

    B2 -->|"DB 저장 완료"| H2["do_action 'mbw_comment_api_footer'"]


    H1 --> N1["wmbt_notify_board()"]

    H2 --> N2["wmbt_notify_comment()"]


    subgraph Board["wmbt_notify_board() 내부"]

        direction LR

        BA["action 확인"] --> BB["ON/OFF 확인"] --> BC["게시글 조회"] --> BD["URL 생성"]

    end


    subgraph Cmt["wmbt_notify_comment() 내부"]

        direction LR

        CA["action 확인"] --> CB["ON/OFF 확인"] --> CC["댓글 조회"] --> CD["원글 제목"]

    end


    N1 --> Board

    N2 --> Cmt


    Board --> S["wmbt_send_telegram()"]

    Cmt --> S


    S --> R["wp_remote_post()"]

    R --> TG["Telegram Bot API sendMessage"]

```


### 핵심 함수


| 함수 | 역할 |

|------|------|

| `wmbt_notify_board()` | 게시글 작성/답변 시 텔레그램 알림 전송 |

| `wmbt_notify_comment()` | 댓글 작성/답변 시 텔레그램 알림 전송 |

| `wmbt_send_telegram()` | 설정값 검증 후 `wmbt_send_telegram_raw()` 호출 |

| `wmbt_send_telegram_raw()` | Telegram Bot API `sendMessage` 호출 |

| `wmbt_build_post_url()` | MangBoard `mbw_get_url()` 호출로 게시글 URL 생성 |

| `wmbt_get_board_display_name()` | `mb_boards.description` 에서 게시판 표시명 조회 |

| `wmbt_clean_text()` | HTML 태그 제거 + 텍스트 길이 제한 (프리뷰용) |

| `wmbt_settings_page()` | 관리자 설정 페이지 HTML 렌더링 |

| `wmbt_sanitize_settings()` | 설정값 검증 및 저장 |


### DB 스키마


설정은 `wp_options` 테이블의 단일 row에 JSON으로 저장:


```sql

SELECT * FROM wp_options WHERE option_name = 'wmbt_settings';

```


```json

{

  "bot_token": "<YOUR_BOT_TOKEN>",

  "chat_id": "<YOUR_CHAT_ID>",

  "enabled": "1",

  "notify_write": "1",

  "notify_reply": "1",

  "notify_comment": "1",

  "notify_creply": "1"

}

```


### DB 쿼리 (참조용)


알림에서 참조하는 MangBoard 테이블:


```sql

-- 게시판 목록 (게시판명, 표시명, WP 페이지 ID)

SELECT pid, board_name, description, post_id, board_type, skin_name

FROM mb_boards WHERE board_type = 'board';


-- 게시글 데이터 (제목, 작성자, 등록일)

SELECT title, user_name, reg_date FROM mb_{board_name} WHERE pid = {게시글_pid};


-- 댓글 데이터 (내용, 작성자, 등록일)

SELECT content, user_name, reg_date FROM mb_{board_name}_comment WHERE pid = {댓글_pid};

```


---


## 다른 사이트에 설치하는 방법


### 1. 플러그인 복사


```bash

# 대상 WordPress의 wp-content/plugins/ 에 복사

cp -r mangboard-telegram-notifications/ /path/to/wordpress/wp-content/plugins/

```


### 2. 플러그인 활성화


**WordPress 관리자 > 플러그인** 에서 활성화


### 3. 설정 입력


**WordPress 관리자 > Telegram 알림** 메뉴에서:


1. Bot Token 입력 (새 봇 생성 필요시 @BotFather 참고)

2. Chat ID 입력 ("Chat ID 조회" 버튼으로 확인)

3. 알림 항목 선택

4. **설정 저장**

5. **"테스트 메시지 전송"** 으로 연결 확인


### 전제 조건


- WordPress 6.x 이상

- PHP 8.x 이상

- MangBoard WP 플러그인 v2.4.x 이상 설치됨

- 서버에서 `api.telegram.org` 로의 아웃바운드 HTTPS 통신 허용


---


## 트러블슈팅


### 알림이 오지 않을 때


```mermaid

flowchart TD

    Problem["알림이 오지 않음"] --> Test{"테스트 메시지 전송 성공?"}


    Test -->|"YES"| Hook{"실제 이벤트 시 알림 오는지?"}

    Test -->|"NO"| Token{"Bot Token 올바른가?"}


    Token -->|"NO"| FixToken["Bot Token 재입력"]

    Token -->|"YES"| ChatID{"Chat ID 올바른가?"}


    ChatID -->|"NO"| FixChatID["Chat ID 재조회"]

    ChatID -->|"YES"| Network{"서버에서 api.telegram.org 접근 가능?"}


    Network -->|"NO"| FixNet["방화벽/아웃바운드 확인"]

    Network -->|"YES"| Log["debug.log에서 WMBT 확인"]


    Hook -->|"YES"| Done["정상 동작"]

    Hook -->|"NO"| Log


    Log --> FixLog["에러 메시지 확인 후 조치"]


    style Problem fill:#FFCDD2

    style Done fill:#C8E6C9

```


1. **설정 확인**: Telegram 알림 메뉴에서 "테스트 메시지 전송" 시도

2. **로그 확인**: WordPress debug log에서 `[WMBT]` 키워드 검색

   ```bash

   docker exec <WP_CONTAINER> grep WMBT /var/www/html/wp-content/debug.log

   ```

3. **Bot Token/Chat ID 재확인**: 봇이 해당 채팅에 메시지를 보낼 권한이 있는지 확인


### URL이 "삭제되었거나 존재하지 않는 내용"일 때


- `mbw_get_url()` 이 MangBoard 네이티브 함수이므로, 게시판 설정 자체에 문제가 없다면 정상 동작

- MangBoard 게시판의 `post_id` (WordPress 페이지 ID)가 올바르게 설정되어 있는지 확인


### 관리자 메뉴에 "Telegram 알림"이 보이지 않을 때


- 플러그인이 **활성화** 상태인지 확인

- `manage_options` 권한을 가진 관리자 계정으로 로그인되어 있는지 확인


---


## 참고


- [MangBoard 텔레그램 알림봇 플러그인 (공식 스토어)](https://www.mangboard.com/store/?vid=189) — 유료 플러그인 (33,000원)

- [Telegram Bot API 공식 문서](https://core.telegram.org/bots/api)

- [@BotFather](https://t.me/BotFather) — 텔레그램 봇 생성/관리


댓글
자동등록방지
(자동등록방지 숫자를 입력해 주세요)