워드프레스 플러그인 만들기 연수원

WordPress Plugin Development
이 문서는 워드프레스 플러그인 만드는 방법을 일목요연하게 설명하고 있습니다.

워드프레스 온라인 메뉴얼 원본에 충실하되, 설명이 부족하다고 생각되는 부분은 부가 설명과 참고 이미지를 추가하였습니다.
워드프레스 플러그인을 제대로 개발하기 위해서는 최소한 아래 4개 문서의 내용을 잘 숙지해야합니다만.

참고문서

1. 목차

1 목차
2 소개 / 준비
… 2.1 플러그인 이름과 파일 이름 짓기
… 2.2 플러그인 파일 위치
… 2.3 파일 헤더 작성
… 2.4 Readme 파일 작성
… 2.5 라이센스
3 플러그인 프로그래밍하기
… 3.1 WordPress Plugin Hook을 이용하는 방법
…… 3.1.1 Action
…… 3.1.2 Filters
…… 3.1.3 그 외에 반드시 알아야할 것들
……… 3.1.3.1 플러그할 수 있는 함수들
……… 3.1.3.2. 플러그인 활성/비활성 훅
……… 3.1.3.3 사용가능한 액션과 필터 목록
… 3.2 Template Tags를 이용하는 방법
4 데이터베이스에 플러그인 데이터 저장하기
… 4.1 워드프레스 옵션을 이용하는 방법
…… 4.1.1 새로운 옵션 생성
…… 4.1.2 데이터베이스에서 옵션 값 가져오기
…… 4.1.3 옵션 업데이트
… 4.2 Post Meta(일명 Custom Fields)를 이용하는 방법
… 4.3 새로운 데이터 테이블을 만드는 방법
5. 옵션 관리 메뉴/페이지 만들기
… 5.1 어느 위치에 메뉴를 만들까?
… 5.2 Top-Level 메뉴 만들기
… 5.3 Sub-Level 메뉴 만들기
6. 다국어 지원

2. 소개 / 준비

플러그인이란 응용프로그램을 확장/변경하기 위해 만드는 컴퓨터 프로그램을 말합니다.
워드프레스 역시 간편하게 플러그인을 설치하여 블로그의 기본 기능을 확장/변경할 수 있습니다. 워드프레스 온라인 메뉴얼에서는 워드프레스 플러그인에 대하여 아래와 같이 정의하고 있습니다.

“워드프레스 플러그인은 PHP 스크립트 언어로 작성된 프로그램 또는 함수(집합)로서, 블로그 기능과 서비스를 확장할 수 있다. 워드프레스 플러그인은 플러그인 API가 제공하는 ‘엑세스 포인트’와 ‘메서드’를 통해 블로그와 완벽하게 통합될 수 있다.”

코어 프로그램을 함부로 변경하게되면, 차후 여러가지 문제점에 직면할 가능성이 커집니다. 블로그의 기본 기능을 확장/변경하고자 한다면, 가능한 플러그인에서 답을 찾는 것이 옳습니다.
* 플러그인 정의에 언급한 ‘엑세스 포인트’와 ‘메서드’란… 이후 자세히 설명하게 될 Action과 Filter라는 Hook을 가르킵니다.

현재 워드프레스 웹사이트에 들어가보니 10,231개의 플러그인이 등록되어있네요. 하지만, 내 블로그에 꼭 맞는 플러그인이 없다면, 이 문서가 플러그인 개발에 도움이 될 것입니다.

2.1 플러그인 이름과 파일 이름 짓기

플러그인의 이름과 파일 이름을 지을 때에는 플러그인의 기능을 잘 표현하면서도, 다른 플러그인들의 이름과 중복되지않도록 유니크한 이름을 지어야할 것입니다.
- 플러그인 이름 짓기의 예: My Google Analyticator
- 파일 이름 짓기의 예: my-google-analyticator.php

2.2 플러그인 파일 위치

플러그인 기본 디렉토리인 wp-content/plugins/에 위치시킵니다. 파일이 여러개인 경우(readme.txt, php, image…) 아래 그림과 같이 서브디렉토리를 생성하여 그룹을 만드세요.

예: 위 그림은 “akismet”이라는 플러그인의 위치와 파일들을 보여주고 있다.

2.3 파일 헤더 작성

플러그인 PHP 파일 상단에 플러그인 정보를 반드시 작성해주어야 합니다. 워드프레스는 이 정보를 통해 플러그인의 존재를 인식하기 때문입니다. 파일 헤더는 아래와 같은 주석문으로 작성합니다.

<?php
 /*
 Plugin Name: Name Of The Plugin
 Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
 Description: A brief description of the Plugin.
 Version: The Plugin's Version Number, e.g.: 1.0
 Author: Name Of The Plugin Author
 Author URI: http://URI_Of_The_Plugin_Author
 License: A "Slug" license name e.g. GPL2
 */
 ?>

플러그인 파일에 헤더가 올바르게 작성되어있다면, 플러그인 관리페이지에 아래 그림과 같이 플러그인이 인식되며, 헤더에 작성한 정보들이 출력되고 있는 것을 알 수 있습니다.

2.4 Readme 파일 작성(선택)

플러그인 제작후 배포할 계획이 있다면, Readme 파일을 작성하여 플러그인 파일과 같은 폴더에 위치시켜야 합니다. 아래 그림과 같이 플러그인에 대한 자세한 정보를 사용자들에게 미리 알려주어야하기 때문입니다.

Readme 파일 작성시에는 표준 포멧을 따라야 하므로,
http://wordpress.org/extend/plugins/about/readme.txt를 참고하여 작성하세요.

2.5 라이센스(선택)

일반적으로 파일 헤더 정보에 함께 작성합니다. 대부분의 플러그인은 워드프레스가 사용하는 GPL2 또는 compatible with the GPL2 라이센스를 사용하고 있습니다. GPL2 라이센스를 사용하려 한다면 다음 라인을 플러그인에 포함하세요.

<?php
/* Copyright YEAR PLUGIN_AUTHOR_NAME (email : PLUGIN AUTHOR EMAIL)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
?>

3. 플러그인 프로그래밍하기

플러그인을 프로그래밍하는 방법은, WordPress Plugin Hook을 이용하는 방법Template Tags를 이용하는 방법이 있습니다.

3.1 WordPress Plugin Hook을 이용하는 방법

후킹(hooking)은 소프트웨어 공학 용어로, 운영 체제나 응용 소프트웨어 등의 각종 컴퓨터 프로그램에서 소프트웨어 구성 요소 간에 발생하는 기능 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다.” – 위키피디아

워드프레스 플러그인 훅은 워드프레스가 실행되는 동안 다양한 시점에서 실행됩니다.
워드프레스는 자신이 해야할 기본 행위를 하기전에 그 행위에 플러그인이 등록되어있는지를 먼저 체크합니다. 만약 여기에 등록되어있는 함수가 있다면 이를 먼저 실행합니다. 예를들어, 포스트 제목 앞에 일괄적으로 꽃표를 붙히고자 한다면, ‘필터’라는 훅을 활용해볼 수 있을 것입니다.
아래 코드는 포스트 제목을 출력하는 기능을 하는 the_title 함수(템플릿태그)에 필터를 추가하는 방법을 보여줍니다.(자세한 설명은 Filter에서 설명합니다)

function add_asterisk_on_title($title){
 return '*' . $title;
}
add_filter('the_title', 'add_asterisk_on_title');

워드프레스 플러그인 Hook으로는 Action과 Filter가 있습니다.

Actions: Action API를 이용하여, 워드프레스가 실행되는 동안 특정한 포인트에서, 또는 특정한 이벤트가 발생되었을때 후킹할 수 있도록 한다. 플러그인 개발자는 이 포인트에 하나 또는 그 이상의 PHP 함수가 실행되도록 할 수 있다.

Filters: Filter API를 이용하여, 텍스트를 데이터베이스에 저장하거나 브라우저에 출력하기 전에 후킹할 수 있도록 한다. 플러그인 개발자는 이 시점에 하나 또는 그 이상의 PHP 함수가 실행되도록 하여 다양한 타입의 텍스트를 수정할 수 있다.

자, 그럼 이 두가지를 차근 차근 예제와 함께 살펴보도록 하겠습니다.

*

3.1.1 Action

액션은 워드프레스에서 발생하는 특정 이벤트에 의해 실행됩니다. 예를들어, 포스트를 퍼블리시한다거나 테마를 바꿀때… 이와같은 이벤트가 발생할 때 여러분이 등록한 PHP 함수가 실행됩니다.

기본 과정은 아래와 같습니다.
i. 이벤트가 발생했을때 실행할 PHP 함수를 정의한다.
ii. add_action으로 워드프레스에 액션 훅을 건다.
iii. 플러그인 파일에 위 내용들을 저장하고, 플러그인을 활성한다.

실습: 새로운 포스트를 퍼블리시했을 때, 자동으로 친구에게 이메일 공유하는 플러그인을 만들어봅시다.

function email_friends($post_ID)  {
   $friends = 'bob@example.org,susie@example.org';
   mail($friends, "sally's blog updated", 'I just put something on my blog');
   return $post_ID;
}

대부분의 action 함수는 위와 같이 1개의 파라미터를 받도록 작성될 것입니다. (보통 포스트 아이디 또는 덧글의 아이디). 하지만 어떤 action 함수의 경우 1개 이상의 파라미터를 필요로 하는 경우도 있으므로 함수 작성시 action 레퍼런스를 참고하세요.

함수를 정의했다면 아래와 같이 액션 훅을 워드프레스에 걸어야 합니다.

add_action ( 'hook_name', 'your_function_name', [priority], [accepted_args] );

hook_name: 필수(string), 워드프레스가 제공하는 action 훅의 이름. (위 예제의 경우 ‘publish_post’)

your_function_name: 필수(string), hook_name으로 기술된 이벤트가 발생하였을때 실행시킬 함수의 이름 (위 예제의 경우 ‘email_friends’)
priority: 선택(integer, default: 10), action 훅이 여러개 걸려있는 경우 실행 순서를 지정할 수 있습니다. 숫자가 작을수록 먼저 실행됩니다.
accepted_args: 선택(integer, default: 1), 함수가 받을 파라미터의 개수입니다. 어떤 훅의 경우 1개이상의 파라미터를 전달해야하기 때문에 필요한 것입니다.

위 형식에 따라 앞선 예제는 아래와 같이 액션 훅을 걸 수 있을 것입니다.
[php]add_action ( ‘publish_post’, ‘email_friends’ );[/php]
이렇게 걸린 액션 훅은 publish_post 함수 내부의 do_action 함수에 의해 호출될 것입니다.

Actions Functions:
has_action
add_action
do_action
do_action_ref_array
did_action
remove_action
remove_all_actions

*

3.1.2 Filter

필터는 데이터와 밀접한 관계가 있습니다. 워드프레스는 자신의 기본 동작을 실행하기 전에 특정 시점에서 데이터를 가공할 수 있는 기회를 줍니다. 필터가 바로 시점에서 자신의 역할을 하게 됩니다. 필터는 데이터베이스와 브라우저(워드프레스가 만들어내는 페이지), 브라우저와 데이터베이스(워드프레스가 새로운 포스트, 덧글을 데이터베이스에 추가할때) 중간에 있다고 말할 수 있습니다. 워드프레스에서 입/출력되는 대부분 데이터들은 적어도 하나 이상의 필터를 거치는데, 여러분은 여기에 필터 API로 필터를 추가할 수 있습니다.

기본 과정은 아래와 같습니다.
i. 데이터를 필터링하는 PHP 함수를 정의한다.
ii. add_filter로 워드프레스에 필터 훅을 건다.
iii. 플러그인 파일에 위 내용들을 저장하고, 플러그인을 활성한다.

실습: 덧글에 저속한 단어들이 있는 경우 이를 필터링({censored}로 대체)하는 플러그인을 만들어봅시다.

function filter_profanity($content) {
 $profanities = array('badword','alsobad','...');
 $content=str_ireplace($profanities,'{censored}',$content);
 return $content;
 }

* 참고: str_ireplace는 대소문자를 구분하면서 문자를 대체하는 PHP 함수입니다. 위 예제의 경우 첫번째 파라미터로 배열을 넘겨주었기 때문에, 내부적으로 순환하면서 문자패턴을 검사합니다.

함수를 정의했다면 필터 훅을 워드프레스에 걸어야 합니다.

add_filter ( 'hook_name', 'your_filter', [priority], [accepted_args] );

hook_name: 필수(string), 워드프레스가 제공하는 filter 훅의 이름. (위 예제의 경우 ‘comment_text’)
your_filter: 필수(string), 필터링에 사용할 일반 PHP 함수 이름. 워드프레스 코어에 있는 함수여도 되고, 여러분이 플러그인 파일에 직접 정의한 함수여도 됩니다. (위 예제의 경우 ‘filter_profanity’)
priority: 선택(integer, default: 10), filter 훅이 여러개 걸려있는 경우 실행 순서를 지정할 수 있습니다. 숫자가 작을수록 먼저 실행됩니다.
accepted_args: 선택(integer, default: 1), 여러분의 함수가 받을 파라미터의 개수입니다. 어떤 훅의 경우 1개이상의 파라미터를 전달해야하기 때문에 필요한 것입니다.

위 형식에 따라 앞선 예제는 아래와 같이 필터 훅을 걸 수 있을 것입니다.
[php]add_filter(‘comment_text’,'filter_profanity’);[/php]
이렇게 걸린 필터 훅은 comment_txt 함수 내부의 apply_filters 함수에 의해 호출될 것입니다.

Filter Functions:
has_filter
add_filter
apply_filters
current_filter
merge_filters
remove_filter
remove_all_filters

*

3.1.3 그 외에 반드시 알아야할 것들

3.1.3.1 플러그할 수 있는 함수들

위와같이 액선과 필터로 훅을 거는 방법 말고도, 워드프레스 기본 제공 함수를 아예 덮어쓰기 함으로써, 워드프레스의 기본 행동을 변경할 수도 있습니다. 덮어쓰기 가능한 함수들의 집합을 Pluggable Functions라고 부르며 wp-includes/pluggable.php에 정의되어있습니다. (메뉴얼에서는 작은 함수 세트라고 말하고 있지만, 사실 매우 유용한 많은 함수들이 들어 있습니다.)
모든 플러그인을 읽어들인 후, 여전히 정의되지않은 플러그인 가능한 함수들만을 읽어들이므로, Pluggable Functions에 정의된 함수 중 필요한 것을 덮어쓰기하여 기본 행동을 변경하면 되는 것입니다. (function_exists 함수로 이미 정의되었는지를 확인함)

3.1.3.2. 플러그인 활성/비활성 훅

이 함수들은 플러그인이 활성/비활성될 때 작동합니다. 대부분 이 기능이 필요없을 테지만, 플러그인을 설치할때 기본 옵션값을 변경해야하는 등의 경우에 필요할 것입니다.
register_activation_hook
register_deactivation_hook

3.1.3.3 사용가능한 액션과 필터 목록

예제의 ‘publish_post’, ‘comment_text’ 같은… 액션과 필터 목록입니다.
Plugin API/Action Reference
Plugin API/Filter Reference
또는
Adam Brown’s WP Hooks Database

**

3.2 Template Tags를 이용하는 방법

플러그인을 만드는 또 한가지 방법은 사용자정의 Template Tags를 생성하는 것입니다. 원리는 매우 단순합니다. 예를들어, hr 태그를 삽입하는 사용자정의 Template Tag를 플러그인 파일에 정의해두고, 사용자가 자신의 theme의 필요한 부분에서 호출을 하도록 하는 것입니다.

// 플러그인 파일에서...
function insert_hr(){
   // code...
}
// theme에서...
insert_hr();

따라서, 개발자는 아래 그림과 같이 플러그인 홈페이지나 readme.txt, 플러그인 해더 등에서 Template Tags 사용법을 사용자들에게 자세히 알려주어야 합니다. 사용자들은 개발자가 어떤 Template Tag를 정의해두었는지 알 수가 없을테니까요.

* Template Tags: 블로그 템플릿에 데이터를 출력하려 하거나, 이를 커스터마이즈하고자 할 때 사용되는 함수/메서드.

4. 데이터베이스에 플러그인 데이터 저장하기

플러그인 개발시, 대부분의 개발자들은 form 데이터를 데이터베이스에 저장할 필요성을 느낄 것입니다.
예를 들어, 사이드바 위젯에 최근 포스트 제목을 원하는 개수만큼 출력하는 플러그인(이미 존재하지만…)을 만들고자 한다면, 그 개수에 해당하는 데이터가 어디에든 저장되어있어야 할 것입니다.

플러그인에서 사용할 데이터를 데이터베이스에 저장하는 방법 세가지가 있습니다.
i. 워드프레스 옵션을 이용하는 방법
ii. Post Meta(일명 Custom Fields)를 이용하는 방법
iii. 새로운 데이터 테이블을 만드는 방법
그럼 하나하나 자세히 살펴보도록 하겠습니다.

4.1 워드프레스 옵션을 이용하는 방법

각 데이터 마다 고유의 이름이 있고, 소량의 데이터를 저장하는데 적합합니다. — 사이트 소유자가 플러그인을 세팅한 이후에 웬만해서는 바뀔 일이 없을 것으로 기대되는 데이터들입니다.
워드프레스를 설치하면, 데이터베이스에 wp_options (‘wp_’는 접두어)라는 테이블이 생성되어있을 것입니다. 설치과정에서 이미 여기에 수많은 옵션 데이터들이 저장되었을 텐데, 블로그 타이틀, 관리자 이메일, 사이트 주소, 문자셋, 현재 템플릿 등이 바로 옵션 데이터들입니다. 플러그인 제작시 바로 이 테이블을 이용하여 얼마든지 데이터를 추가/변경/삭제할 수 있으며, 이 작업을 손쉽게 할 수 있는 함수들을 제공합니다. (add_option, get_option, update_option, …)

위 그림은 wp_options 일부를 캡처한 것입니다. 옵션 값으로는 저장할 수 있는 데이터 타입은 string, array, PHP object 입니다. (PHP object인 경우, “serialized” 또는 “json_encode”하여 문자열로 바꾸어서 저장해야합니다. 물론 값을 받을때에는 각각 “unserialized”, “json_decode” 해야하고…)

4.1.1 새로운 옵션 생성

add_option($name, $value, $deprecated, $autoload);

* 이미 같은 이름의 옵션이 존재하면 이 명령은 무시됩니다.
name: 필수(string). 옵션의 이름
value: 선택(mixed, 디폴트는 공백문자) 옵션의 값
deprecated: 선택(string, 디폴트는 공백문자), 워드프레스에서 더이상 사용되지 않음. $autoload 파라미터를 사용하려면 공백문자나 null을 입력.
autoload: 선택 (‘yes’ 또는 ‘no’, 디폴트는 ‘yes’) ‘yes’로 세팅되어있다면, wp_load_alloptions 함수 호출시 데이터베이스에서 읽어들이는 옵션의 리스트에 포함됨.

4.1.2 데이터베이스에서 옵션 값 가져오기:

[php]get_option($option);[/php]
option: 필수(string) 가져오려는 옵션의 이름. 워드프레스 디폴트 옵션 목록은 Option Reference 에서 볼 수있습니다.

4.1.3 옵션 업데이트

update_option($option_name, $newvalue);

* 업데이트하려는 옵션이 없는 경우, 새로운 옵션을 생성합니다. 따라서 $deprecated 또는 $autoload 파라미터를 사용하지 않는다면, add_option대신 update_option을 사용해도 되는 것입니다.
option_name: 필수(string), 옵션의 이름
newvalue: 필수(string|array|object) 옵션의 값

4.2 Post Meta(일명 Custom Fields)를 이용하는 방법

개개의 posts, pages, attachments와 관계하는 데이터로서 적합합니다. posts, pages, attachments와 같은 데이터들은 각각 제목, 내용, 저자 아이디, 등록일, 수정일 등 다양한 데이터들을 가지고 있지만, 그 외에 특별한 사용자정의 데이터를 덧붙이고 싶다면, Post Meta를 이용할 수 있습니다.
다음 예제는 각 포스트 마다 mood와 listening_to라는 사용자정의 데이터를 입력/수정/삭제하는 플러그인의 예를 보여줍니다.
post_meta Function Examples
이 예제를 통해 posts, pages, attachments의 메타데이터를 이용한 플러그인을 제작할 수 있을 것입니다. 또한 post meta는 포스트 에디터 하단에 있는 Custom Fields 패널에서도 손쉽게 추가할 수 있습니다.(아래 그림)

4.3 새로운 데이터 테이블을 만드는 방법

개개의 posts, pages, attachments, comments와 관계하되, 특히 시간이 지남에 따라 계속 데이터가 늘어나고, 각각의 데이터들에게 고유한 이름이 필요없을 때 적합합니다. 이 방법은 Creating Tables with Plugins 에서 자세히 알 수 있지만, 워드프레스 데이터베이스 시스템을 미리 이해하고 있어야합니다. (이 부분에 대해서도 조만간 한글 메뉴얼을 만들어볼까 합니다.)

5. 옵션 관리 메뉴/페이지 만들기

데이터베이스에 옵션 데이터를 저장하고 관리해야하는 플러그인인 경우(4.1과 같이), 아래 그림처럼 이를 관리할 수 있는 메뉴와 페이지가 필요할 것입니다.

관리 메뉴/페이지를 만드는 절차는 다음과 같습니다.
i. 메뉴를 만들어내는 코드를 포함하는 함수를 만든다.
ii. 이 함수를 “admin_menu” 액션 훅으로 등록한다.
iii. ii 단계에서 만든 관리메뉴를 클릭했을때 나올 HTML 페이지(스크린)를 만든다.
* 종종 개발자들은 ii 단계를 건너뛰고 직접 add_options_page를 실행시키곤하는데, 이렇게하면 에러를 발생시키므로, 반드시 위 과정을 따라야합니다.

5.1 어느 위치에 메뉴를 만들까?

메뉴는 top-level에 만들 수도 있고, sub-level에 만들 수도 있습니다.
top-level로 만드는 경우는 매우 드물지만, 워드프레스의 어드민 메뉴 구분/카테고리와 컨셉이 완전히 다르거나, 너무 많은 서브메뉴들을 가지고 있을 경우에는 top-level로 만드는 것이 적절할 것입니다.
sub-level로 메뉴를 추가하려 한다면, 여러분의 메뉴가 위치하게 될 top-level 메뉴를 결정해야할 것입니다. 워드프레스의 기본 top-level 메뉴는 아래와 같습니다.
Dashboard, Posts, Media, Links, Pages, Comments, Appearance, Plugins, Users, Tools, Settings

5.2 Top-Level 메뉴 만들기

* Top-Level로 메뉴를 만드는 일은 매우 드뭅니다. 필요없다고 생각되면, Sub-Level 메뉴 만들기로 넘어가셔도 됩니다.

<?php add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function,
$icon_url, $position ); ?>

page_title: 필수, 메뉴를 클릭했을때 나오는 페이지의 타이틀
menu_title: 필수, 메뉴의 타이틀
capability: 필수, 메뉴와 페이지 접근 권한(User levels)
menu_slug: 메뉴 페이지의 고유 슬러그.
function: 메뉴의 페이지를 디스플레이하는 함수 이름.
icon_url: 선택, 메뉴 아이콘 url
position: 선택, 메뉴가 나타날 위치. 이 값을 생략하면 메뉴 최하단에 나타남.

실습: 위 이미지와 같이 Top-Level 메뉴와 페이지를 만들어봅시다.

add_action('admin_menu', 'my_top_menu');
function my_top_menu() {
   add_menu_page('my top menu title', 'my top menu', 9, 'my-top-menu', 'my_top_menu_page');
}
function my_top_menu_page() {
   if (!current_user_can('manage_options'))
      wp_die( __('You do not have sufficient permissions to access this page.') );
?>
   <div class='wrap'>
      <h2>My Top Menu Page</h2>
      <p>My Top Menu Page Test.</p>
   </div>
<? } ?>

*

5.3 Sub-Level 메뉴 만들기

<?php add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function); ?>

page_slug: top-level의 슬러그 또는 파일 이름. 사용자정의 top-level인 경우 슬러그를, 그렇지않은 기본 워드프레스 top-level 메뉴인 경우 파일 이름을 입력.

* Top-Level 메뉴별 page_slug:
 Dashboard - 'index.php'
 Posts - 'edit.php'
 Media - 'upload.php'
 Links - 'link-manager.php'
 Pages - 'edit.php?post_type=page'
 Comments - 'edit-comments.php'
 Appearance - 'themes.php'
 Plugins - 'plugins.php'
 Users - 'users.php'
 Tools - 'tools.php'
 Settings - 'options-general.php'
//example
<?php add_submenu_page('index.php',...); ?>

page_title: 필수, 메뉴를 클릭했을때 나오는 페이지의 타이틀
menu_title: 필수, 메뉴의 타이틀
capability: 필수, 메뉴와 페이지 접근 권한(User levels)
menu_slug: 메뉴 페이지의 고유 슬러그
function: 메뉴의 페이지를 디스플레이하는 함수 이름.

Sub-Level 메뉴 생성할 때, 아래와 같은 Wrapper Function을 간편하게 사용할 수도 있습니다.

* Top-Level 메뉴별 Sub-Level 메뉴 생성 Wrapper Function:
 Dashboard - add_dashboard_page
 Posts - add_posts_page
 Media - add_media_page
 Links - add_links_page
 Pages - add_pages_page
 Comments - add_comments_page
 Appearance - add_theme_page
 Plugins - add_plugins_page
 Users - add_users_page
 Tools - add_management_page
 Settings - add_options_page
//example:
<?php add_dashboard_page($page_title, $menu_title, $capability, $menu_slug, $function);?>

*

실습1: 아래 이미지와 같이 Setting 메뉴에 메뉴 아이템 하나를 추가하고, 추가된 메뉴를 클릭하면 페이지가 출력되도록 해봅시다.

<?php
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
   add_options_page('My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options');
}
function my_plugin_options() {
   if (!current_user_can('manage_options'))
     wp_die( __('You do not have sufficient permissions to access this page.') );
?>
   <div class='wrap'>
   <h2>My Plugin Options</h2>
   <p>Here is where the form would go if I actually had options.</p>
   </div>
<? } ?>

*

실습2: 아래 이미지와 같이 사용자정의 Top-Level 메뉴를 만들고, 그 메뉴에 Sub-Level 메뉴를 추가해봅시다.

add_action('admin_menu', 'my_top_menu');
function my_top_menu() {
 add_menu_page('my top menu title', 'my top menu', 9, 'my-top-menu', 'my_top_menu_page');
 add_submenu_page('my-top-menu', 'My Plugin Options', 'My Plugin', 'manage_options', 'my-unique-identifier', 'my_plugin_options');
 }
function my_top_menu_page() {
 if (!current_user_can('manage_options'))
     wp_die( __('You do not have sufficient permissions to access this page.') );
 ?>
 <div class='wrap'>
 <h2>My Top Menu Page</h2>
 <p>My Top Menu Page Test.</p>
 </div>
 <?
 }
function my_plugin_options() {
 if (!current_user_can('manage_options'))
     wp_die( __('You do not have sufficient permissions to access this page.') );
 ?>
 <div class='wrap'>
 <h2>My Plugin Options</h2>
 <p>Here is where the form would go if I actually had options.</p>
 </div>
 <? } ?>

*

실습 3: 플러그인 옵션 데이터를 데이터베이스에 저장해봅시다.

add_action('admin_menu', 'mt_add_pages');
// 훅에 대한 액션 함수
 function mt_add_pages() {
 // Settings 메뉴에 서브메뉴를 만듬.
 add_options_page('Test Settings', 'Test Settings', 'manage_options', 'testsettings', 'mt_settings_page');
 }
function mt_settings_page() {
 // 유저 접근 권한 체크
 if (!current_user_can('manage_options'))
     wp_die( __('You do not have sufficient permissions to access this page.') );
// 필드와 옵션 이름으로 사용할 변수
 $opt_name = 'mt_favorite_color';
 $hidden_field_name = 'mt_submit_hidden';
 $data_field_name = 'mt_favorite_color';
// 현재 데이터베이스에 저장된 옵션 값 가져오기
 $opt_val = get_option( $opt_name );
// Form을 Submit 했다면...
 if( isset($_POST[ $hidden_field_name ]) && $_POST[ $hidden_field_name ] == 'Y' ) {
 $opt_val = $_POST[ $data_field_name ];
// 포스트값을 데이터베이스에 저장
 update_option( $opt_name, $opt_val );
// 화면에 업데이트했다는 메세지를 표시
 echo '<div><p><strong>settings saved</p></strong></div>';
 }
 // 옵션 설정 화면을 표시
 ?>
 <div class='wrap'>
 <h2>Menu Test Plugin Settings</h2>
 <form method="post" action="">
 <input value="Y">
 <p>Favorite Color: <input value="<?=$opt_val?>"></p>
 <p><input value="Save Changes" /></p>
 </form>
 </div>
 <?php } ?>

* 옵션 페이지 만드는 방법은 위 예제에서 크게 벗어나지 않습니다. 자세한 내용은 Creating Options Pages를 참조하세요.

6. 다국어 지원(선택)

워드프레스가 전세계에서 사용되고 있는 만큼. 플러그인을 배포할 계획이 있다면, 다국어 지원에도 신경쓰면 좋겠지요?
플러그인은 언어파일을 자동으로 로드하지 않으므로, 아래와 같이 파일을 로드해야합니다.

load_plugin_textdomain('your-unique-name','/wp-content/plugins/plugin-name/location-of-mo-po-files/');

플러그인 파일 등에서 흔히 볼 수 있는 __ 함수와 _e 함수는 아래와 같은 구문 형식을 갖습니다.

__('String name','your-unique-name');
 _e('String name','your-unique-name');

__ 함수는 번역된 텍스트를 return하고, _e 함수는 echo하는 차이가 있습니다.

자세한 내용은 I18n for WordPress Developers를 참고하세요.

끝.


WordPress Plugin Development | 워드프레스 플러그인 만들기 | 2010.7.13 | 이태한

Leave Comments

댓글 쓰기 권한이 없습니다. 회원 가입후에 사용 가능합니다

워드프레스에 대한 기능들 여기저기서 모은 것 연수원

워드프레스의 핑백 기능에 관해서

워드프레스의 경우에는 핑백(pingback)이라는 기능이 있다.. 핑백이라는 것은 트랙백의 발전형, 개량형, 내지는 변종이다. 워드프레스 기반 블로그나 여타 해외 블로그에서 다른 블로그의 포스트를 ‘링크’하면 자동으로 트랙백과 유사하게 자신이 글을 썼다라는 내용을 XML-RPC 형태로 쏴준다. 자세한 내용은 영문 위키백과를 참조. 근데 이게 자기가 쏜걸 자기가 받을 수도 있다. 내가 이번에 끊어진 내부 링크를 이으면서 어마어마한 양의 내부 Pingback을 처리했는데. 그냥 전부 받았다. 이게 괜찮은게. 예를 들어서 새로 쓴 글에서 예전에 쓴 글을 링크하면, 새로 쓴 글에서는 예전 글을 링크했지만 예전 글에서는 새로 쓴 글의 존재를 알 수가 없다. 그러니 예전 글을 검색하거나 링크를 타고오거나 하면 그냥 그것만 읽고 떠날텐데. 이제 Pingback으로 새 글이 있다 라는걸 알게 되니까 그 글을 읽을 수 있게 되었다. 즉, 방문객에게는 좀 더 많은 글을 발견할 수 있는 기회를, 저에게는 방문객이 좀 더 블로그에 오래 체류하는 효과를 낳았다. 뭐 이런 윈윈 효과를 낳았다. 이런 것.

아무튼 괜찮은 기능인 것 같아 즐겁다. ^^



이안 on said:

그렇군요. 저도 언젠가 글을 쓰다 예전 글을 인용해서 링크시켰더니 제 글인데도 핑백이 왔어요. 그럴 수도 있다는 것을 이제 알았습니다. ^^

뜨는 워드프레스(Wordpress) 한방에 설치하기!


뜨는 워드프레스(Wordpress) 한방에 설치하기!

워드프레스(Wordpress)를 아시나요~?

워드프레스(Wordpress)는 세계에서 가장 많이 사용되고 있는 설치형 블로그를 말합니다. 최근 서울시를 비롯한 국내 다수의 개인, 기업, 공공기관들도 기존의 홈페이지를 이 워드프레스(Wordpress)로 바꾸고 있어서 주목을 받고 있습니다.

워드프레스(Wordpress)는 텍스트큐브, 제로보드와 같은 오픈소스 기반의 콘텐츠 관리 시스템인데, 최근 더 각광을 받고 있는 이유가 쉬워서라고 하네요~ ㅎ

웹사이트 콘텐츠를 사용자가 원하는 대로 쉽고 빨리 그리고 자유롭게 생산할 수 있고, 운영 관리하기도 쉽다고 합니다. 입력창이 소셜 형태라 편집과 등록이 일반 블로그 보다도 쉬운거지요~^^

또, 플러그인 방식으로 일반인들도 다양한 템플릿 디자인을 적용해 예쁜 웹사이트를 손쉽게 구축할 수가 있답니다.

특히, 소통의 중요성이 날이 갈수록 강조되고 있는데, 모바일 웹 환경과 다양한 소셜 플랫폼(SNS)과의 연동을 제공한다는 강점 때문에 워드프레스(Wordpress)를 선택하는 사람들이 늘고 있는 추세입니다.

이 밖에도 워드프레스(Wordpress)는 검색에 최적화된 툴이라 콘텐츠의 노출이 쉽고, 오픈 소스이기 때문에 전세계 개발자에 의해 계속 발전을 해나갈 가능성이 높다고 합니다.

다음은 지난 3월에 워드프레스로 새 단장한 서울특별시 홈페이지 입니다. 딱 봐도 이용자들의 소통과 참여를 강조하고 있다는 게 한 눈에 보이지 않나요~??


사용자 삽입 이미지
실제 서울시 홈페이지는 ▲웹사이트에 올라온 정보를 트위터나 페이스북 등의 SNS로 손쉽게 공유하게 하고 ▲SNS 계정으로도 댓글을 달 수 있는 ‘소셜댓글’을 제공하며 ▲태블릿 등 모바일 단말기기용 화면을 제공하고 ▲누구나 사전 허락 없이도 콘텐츠를 자유롭게 이용하도록 되어 있습니다.

이렇게 이점이 많은 워드프레스(Wordpress)를 이용해 보고 싶으시다고요~?!

카페24 호스팅센터에서는 워드프레스(Wordpress)와 같은 설치형 프로그램을 손쉽게 자동으로 설치 할 수 있는 프로그램 자동설치 기능을 제공합니다. 이런 프로그램을 설치하려면 이것저것 파일을 받고 웹FTP를 통해 서버에 업로드하고 참 번거로운 과정을 거쳐야 하는데요;;

카페24 호스팅 서비스를 이용하시는 분들은 프로그램 자동설치 기능을 활용해 한번의 클릭만으로 간편하게 원하는 설치형 프로그램들을 사용중인 호스팅에 설치해 이용할 수 있답니다. ^^
☞ GO!! 워드프레스 프로그램 설치하러 바로가기!!


> 카페24 호스팅센터 內 '프로그램 자동설치' 메뉴를 확인하세요.
호스팅 세팅과 함께 워드프레스(Wordpress)가 바로 설치됩니다. ^^

사용자 삽입 이미지



> 이미 카페24 호스팅 서비스를 이용하고 계시다면, 카페24 호스팅센터에 로그인!!
[나의 서비스관리] 페이지 內 '부가서비스' 카테고리에서 자동설치 프로그램을 이용하실 수 있어요.

사용자 삽입 이미지



워드프레스 플러그인 TOP 30

워드프레스의 꽃은 무엇일까요?

간편한 설치와 더불어 많은 플러그인들이 있지요?
대중적으로 가장 많이 쓰이는 플러그인들만 간추려 보았습니다.
해당 플러그인의 대한 설명과, 사용법은 앞으로 꾸준히 POSTING 하겠습니다.

1. Akismet
역시 가장 많이 사용하는 스팸차단 플러그인이다.

2. Google Sitemap Generator
역시 국내와는 달리 외국 블로거들은 SEO에 큰 관심을 가지는 것 같다.
국내 블로거들도 이젠 SEO에 신경을 쓰고 좀더 전문적으로 블로그를 운영했으면 하는 바람이다.

3. Related posts
작성한 글과 관련된 글 목록을 보여준다.

4. Wp-Contact form
스팸방지가 적용된 contact 용지다.

5. WordPress database backup
말이 필요없는 WP데이터베이스 백업 플러그인.

6. Feedburner Feed Replacement
RSS피드를 피드버너로 사용하는 블로거들에게 필요하다.

7. Ultimate Tag Warrior
태그와 관련된 모든 작업을 할수 있다.

8. Subscribe to comments
댓글을 남긴 후 그 댓글에대한 토론들을 확인 할수있게 이메일로 보낸다.
블로그를 키워나가는데 좋은 툴이다.

9. AdSense Deluxe
AdSense광고를 쉽고 다양하게 블로그에 삽입할수 있게 도와주는 플러그인.

10. Gravatars
Gravatars서비스에 가입한 사용자들이 댓글을 달때 그들의 아바타를 보여준다.

11. Jerome’s Keywords plugin
태그와 키워드 관리를 도와준다.

12. Optimal title
제목을 최적화해서 SEO의 최적화를 만들게 해준다.

13. Sociable
소셜네트워크 사이트에 쉽게 등록할수 있게 하는 아이콘들을 블로그에 표시해준다.

14. WP-Cache 2.0
자신의 블로그를 최적화해서 빠르게 뜨게 해준다.
트랙픽 관리도 최적화 시켜줘서 갑자기 블로그가 폭주하더라도 다운되지 않도록 관리한다.

15. Popularity Contest
인기글들을 따로 보여주거나 표시하는 기능을 한다.

16. Sidebar Widgets
사이드바 위젯을 사용 가능하게 만든다.

17. Wp_Notable
여러 소셜 사이트의 아이콘들을 표시해준다.

18. Simple Tags
Technorati 태그를 만들어준다.

19. Adhesive
특정 글이 블로그 맨위에 항상 표시되도록 하는 기능이다.
공지나 알림 글에 사용하기 좋다.

20. Exec-php
PHP코드를 블로그 포스트내에서 사용하고 싶다면 이 플러그인을 사용하면된다.
코딩에 대해서 잘 모른다면 불필요하다.

21. Extended live archive
Archive에서 원하는 글을 빠르고 쉽게 찾을수 있게 도와주는 플러그인이다.

22. No ping wait
WP에서 발행을 누르면 한참동안의 시간이 흐른후에 발행된다.
그 이유는 pinging을 함께 해서 그런데 이 플러그인으로 pinging과 발행의 작업이 분리된다.

23. PodPress
팟캐스트를 하는 블로거들에게 필요하며 그외의 다른 여러 미디어 파일을 올리는데도 상당히 편한 플러그인이다.

24. SRG Clean Archives
또 하나의 Archive 관리 플러그인이다.

25. WP-Page Navi
페이지를 표시할때 다양한 방법으로 표시하여 사용자들이 원하는 페이지에 빨리 도달하도록 도와준다.

26. WP-Cron
블로그 관리 작업들을 특정 시간에 예약하고 싶다면 이 플러그인을 사용하면된다.
예로 데이터베이스 백업을 어느 특정 시간에 하고 싶다면 이 것으로 관리하면 된다.

27. Wp-Shortstat
통계 플러그인이다.

28. Lightbox 2
Lightbox효과를 이미지에서 나타나게 한다.

29. del.icio.us cached
del.icio.us에 북마크한 목록을 보여준다.

30. Get Recent Comments
말 그대로 최근 댓글들을 사이드바에 보여준다.

플러그인(인기글 추출)

인기글 post같은 경우는 빠지지 않는 홈페이지에 필수 기능중에 하나이지요?^^

이 플러그인은 워드프레스 블로그의 인기글을 일,월,년,전체별로 설정해서 목록으로 보여주는
기능을 합니다. 또한 댓글수,조회수,글쓴이,날짜 등을 표시할 수 있습니다.

또한 한글화를 했기때문에 불편없이 사용하실 수 있습니다.

제작자 홈페이지: http://rauru.com/wordpress-popular-posts
경로: wordpress/wp-content/plugins
다운로드 링크: WP-Popular-Posts 2.1.4 (467)

워드프레스 한글버전 들어 보셨어요?

워드프레스를 한글화 작업하여 배포를 해주는곳이 있습니다.

많은 분들이 한글화 작업에 동참하여 개선된 모습을 보여주셨는데요.

저희 한국워드프레스 센터를 운영하는 저희 또한 한글화 작업에 힘을 쏫고 있습니다.

많이 기대해 주세요.

<워드프레스 한글화 통합팩>

워드프레스가 무엇인가요?

워드프레스를 wikipedia.org에서 검색해보았습니다.^^

<사전적 정의>

워드프레스(WordPress)는 오픈 소스 블로그 소프트웨어이다.

<기능>

워드프레스는 템플릿 시스템을 사용한다. PHPHTML 코드 편집 없이도 다시 정리할 수 있는 위젯이 포함되어 있고, 테마도 설치해 자유롭게 전환할 수 있다. 테마 안의 PHP와 HTML 코드는 좀 더 세분화된 맞춤 페이지를 위해 편집할 수 있다.

또한 통합 링크 관리 체계가 갖추어져 있어, 검색 엔진에 친화적이고, 깔끔한 퍼머링크 구조와, 기사에 여러 카테고리를 설정할 수 있는 것을 물론, 여러 명의 저자를 설정할 수 있고, 기사와 포스트에 태그를 지원한다.

또한 트랙백핑백 표준을 지원하며 마지막으로 사용자와 개발자는 리치 플러그인 아키텍처를 통해 기능을 확장할 수 있다.

<외부링크>

Category Archives: 워드프레스 활용법

외국블로그 VS 국내블로그

[외국블로그]
-외국블로그는 기능이 매우 간소화 되어있으며, SEO등 구글 Search시 검색이 매우 잘 됩니다.
외국 블로그인 만큼 facebook이나 Twitter로의 sharing도 잘되며, RSS나 다른 News검색 등이 용이합니다.

(1) 워드프레스
- 다년간 전 세계 블로거들에게 가장 인기가 많은 플랫폼입니다.
플러그인, 테마, 위젯 등 사용자가 편하게 수정 할 수 있도록 설계되었으며, 기존의
수많은 개발자가 배포함으로써 그 위력을 더욱 강하게 만들고 있습니다.
- Creative한 테마가 굉장히 많이 있으며, 카테고리, 페이지 설정능력이 뛰어나다.
- 다른 블로그 등에서 이전하기가 비교적 쉬운 편이다.

(2) 블로그닷컴
- 도메인을 보면 blog.com 으로 블로거들에게 인기가 많은 도메인이다.
- 스킨은 어느정도 갖추어져 있지만, 기본스킨으로 배포되어진다. 때문에 간편한 사용 이용자도 많은 편이다.
- 워드프레스의 기능들이 많이 있지만, 조금 아쉬운부분이 많기 때문에, 사용자들에게 어려움이 많다.

[국내블로그]

(1) 이글루스
- 다양한 색으로 글을 꾸밀 수 있으며, 한국정서에 잘 맞는 느낌이다.
- 매거진 형식으로 글 표시하는 등, 특성 있는 UI가 두루 갖추어져있다.
- facebook, Twitter에 연동하기가 힘들다.
- 검색이 용이하지않아, 운영하는 블로거들이 적다.

왜 워드프레스 이야만 하는가!

워드프레스를 선택할 수 밖에 없는이유는 무엇일까?

워드프레스(wordpress)는 오픈소스 콘텐츠 관리시스템(CMS) 소프트웨어로써, PHP 와 MySQL의 바탕으로 웹템플릿 시스템을 제공받는 설치형 블로그의 대표!

한마디로 전세계 사람들이 가장 많이 사용하는 자유도 높은 블로그 플랫폼입니다.

블로그 플랫폼이란? 블로그를 운영하는데 있어 제공하는 소프트웨어이며, 국내업체가 제공하는 블로그 플랫폼중에서는 네이버블로그, 티스토리블로그, 텍스트큐브, 이글루스 등이 있으며, 국외는 wordpress, Blogger, 무버블타입 등이 있습니다.

그런데 그중 왜 전세계 사람들중 40%가 이상의 사람들이(가입형 포함시 50%이상) wordpress 블로그를 사용하는것일까요?
어느정도 관심있게 보신분들이라면, 왜 블로그가 워드프레스인지, 워드프레스를 선택해야되는지는 더 잘 알고 계실것이라 생각합니다^^

우선 블로그는 크게 두가지 유형으로 나눌수 있습니다.
가입형과 설치형 블로그로 나누어지는데, 둘다 장단점을 갖고있습니다.
wordpress 설치형 블로그의 대표이며, wordpress.com을 통한 가입형블로그 서비스도 제공하고있으나, 플러그인 및 테마등의 유료서비스를 제공하므로, 국내의 블로그들이 무료로 제공하는 서비스와 비교가 됩니다.(p.s따라서 설치형 워드프레스만 알아보겠습니다.)

우리가 알고있는 국내업체중 네이버, 티스토리, 다음 블로그는 가입시 블로그생성이 바로가능한 가입형블로그이고, 텍스트큐브(구 태터툴즈)는 플랫폼을 개인웹호스팅에 설치를해야하는 설치형 블로그입니다.

가입형블로그는 가입만으로 블로그생성과 유저들이 쉽게 포스팅과 스킨을꾸미도록 하는 인터페이스를 제공하며, 웹 도메인,호스팅이 필요없어 트래픽걱정없이 운영가능하게 합니다. 하지만 전문성이 떨어지고 기본제공서비스이외의 편집에따른 제약이 따릅니다. (p.s 티스토리를 가끔 설치형이라고 오해하시는분도 계신데, 티스토리는 가입형블로그의 단점을 많이 보안한 플랫폼입니다, 예를들어, 컨텐츠 백업서비스와 html/css편집 서비스를 제공합니다.)

반면 설치형 블로그인 워드프레스의 장점을 살펴보면,
첫번째. light CMS 로써 높은 자유도를 제공합니다.
두번째. SEO(검색엔진최적화)이 친화가 잘되어있어 검색사이트의 상단에 검색될 가능성이 높아집니다.
세번째. 위젯편집없이 PHP 및 Html 을 사용해서 테마등 블로그 운영의 고급편집이 가능하게합니다.
네번째. 오픈 소스 라이센스(GPL)로 수정과 배포가 용이하며, 블로그 내의 회원등급설정으로 공동저자의 포스팅도 가능합니다.
다섯번째. 전세계 수많은 스킨 테마및 플러그인을 제공함으로써, 블로그의 매력을 한층더 올릴수있습니다.

단점으로는 도메인과 개인 호스팅이 필요하며, 보안성에 취약하다는 지적이 있으나,무료도메인및호스팅 서비스제공이 있으며, 2007년 6월 워드프레스 2.7버전 이후로는 워드프레스 자체적인 보안 및 보안플러그인을 제공함으로써 안전에 대해 개선을 하고있습니다.

이처럼 보듯이 설치형블로그의 대표주자, 워드프레스가 갖고있는 장점은 매우 경탄할 정도입니다. 최근 소셜미디어의 기본이 되어지는 소셜웹 형태의 블로그들중 다수가 워드프레스의 제공을 받는 점을 생각해서, 21C 급변하는 정보화 시대 속에 우리는 워드프레스에 대해서 배우고 알아가야 할 것입니다.

Leave Comments

댓글 쓰기 권한이 없습니다. 회원 가입후에 사용 가능합니다

Category Archives: 커뮤니티 연수원

기본적인 블로그 운영 팁


이제는 누구나가 운영하고 관리할 수 있게 편리해진 블로그. 과거에는 블로그를 운영하는 것만으로도 ‘블로거’라는 칭호를 얻을 수 있었으나, 이제는 블로그를 얼마만큼 체계적으로 잘 운영하고 블로고스피어에서 얼마만큼 ‘소통’하는지 여부 그리고 마지막으로 큰 ‘주목’을 받느냐가 블로거로서의 정체성을 얻을 수 있는것 같습니다.

스팸형 블로그가 넘쳐나고 저와 같은 영양가 없는 글을 퍼블리싱하는 사람도 흔한 이상. 인정 받는 블로거는 그 가치가 생각 외로 클 수도 있다라는 생각을 합니다. 오래전부터 예견되어 왔던 최근 어느 블로거의 공동구매와 관련된 이슈들만 보아도 마찬가지입니다. 큰 주목을 받아왔던 만큼 피해의 파장력도 상상 이상이었듯이 말입니다.

적지 않은 시간 동안 곤히 깊게 잠이 든 블로그를 깨우고 다시 살려보려 나름의 고민을 틈틈히 해오면서 과거에 없던 현재의 파워 블로거들은 어떻게 저러한 영향력 혹은 네트워크를 형성할 수 있었을까?를 고민해보곤 합니다. 그것은 아마도 타인과의 커뮤니케이션이 이루어지면서 느끼게 되는 성취감이 원동력이 되어 실제 가지고 있는 능력의 120% 이상의 능력을 발휘하게 해주는 불특정다수의 ‘주목’의 힘이지 않을까 싶은 생각을 하게 됩니다.

저 또한 워드프레스를 기반으로 별도 호스팅을 받아 직접 한땀~ 한땀 디테일한 부분까지 다양한 테스트를 거치며 블로그를 꾸미고 플러그인을 뜯어 고치고 등등의 작업을 거치면서 현 블로그를 운영하고 있습니다. 이제는 ‘주목’을 받고 싶은가 봅니다. 삽질도 끝났으니 글만 열심히 쓰면 된다! 라고 생각만 하지 막상 그러하지 못한것이 문득 생각나는 김에 글을 한두편 써도 그 누구도 호응을 안해주고 주목을 못 받으니 행위 자체에 대한 허무함이 자리하기에 별달리 이렇다할 의욕이 생겼다가도 이내 쉽게 무너지나 봅니다.

가끔은 한 사람의 주식 트레이더이자 증권 전문가 활동을 하면서 본 블로그가 다소 안좋게 비춰질까 하는 고민도 하게 됩니다. 그것은 아마도 증권 전문가들의 비도덕적이면서도 비양심적인 과거 사례가 있었기에 그러한 시각이 저에게까지 영향을 미치지는 않을까….? 그것이 저의 소중한 블로그를 스팸 혹은 마켓팅 등의 도구로서 비춰지지는 않을까…? 일종의 컴플렉스일 수 있겠지요. 그러나 그것은 제가 극복해야 될 문제이고 수많은 분들이 저의 글과 생각 그리고 소통을 통해 무언가 다르다라는 것을 느끼시고 계시니 앞으로 더더욱 개선될것이라 봅니다. (워낙.. 증권, 부동산, 금융 관련 스팸성 블로그가 많다보니…)

증권 전문가 활동을 하면서도 시작부터 항시 소신있게 거짓없이 진심과 정성을 다해 수익률 게임을 하고 있다라고 생각합니다. 그것은 실전 트레이더이기에 더더욱 그러할 것입니다. 거기에 덧붙여 블로거로서도 마찬가지인듯 싶습니다. 누구 못지 않은 성실함과 진실성을 갖고 블로그를 운영하려 하고 그렇게 해오고 있다 생각합니다. 부족한 점이 있다면 더더욱 노력할 것입니다.

제가 바라는 블로거로서의 ‘주목’을 받기 위해서는 누구보다 성실하게 진심과 정성을 담아 한발짝씩 내딛으면 조심스레 나아가면 자연스레 따라올것이라 생각합니다. 그렇게 믿고 더욱더 ‘주목’ 받기 위해 노력하겠습니다. ‘주목’ 받으면 뭐하냐고요? 글쎄요.. 다양한것이 있겠지만 그 중… 왠지 소통의 즐거움이 가득할것만 같아 호기심에 얻고 싶은가 봅니다. 일단은 성실히, 열심히 소통하며 그것 자체를 즐기며 즐겁게 블로깅하는 블로거가 되보렵니다. ^^

<< 중요한점 >>

1. 블로그 오픈 글쓰기

2. 블로그 글의 주제를 정하자

3. RSS등록

4. 검색엔진의 최적화

웹디를 위한? 파이어폭스 플러그인

WebDeveloper’shttps://addons.mozilla.org/ko/firefox/addon/60
CSS, html, images, form, div 등 홈페이지를 구성하는 요소들을 검사하거나 필요부분만 볼 수 있도록 여러 각도의 화면을 구성할 수 있게 설정할 수 있다.
무엇보다 잘못된 CSS파일을 볼땐 정말 최고다. ㅎㅎ
상단부분의 페이지 에러 체크는 정말 좋다. 잘못된 CSS / javascript 에러나 경고문을 보여준다.

FireBughttps://addons.mozilla.org/ko/firefox/addon/1843
파이어폭스 웹개발 플러그인하면 빼놓을수 없는 대표적인게 바로 FireBug이다.
html태그를 보기 쉽게 트리형식으로 보기에 구조를 파악하거나 설계하는데 한눈에 볼 수 있기때문에 정말 좋다.
물론 CSS도 확인 가능하며 요소 검사도 가능하다.

ColorZillahttps://addons.mozilla.org/ko/firefox/addon/271
디자이너라면 한번 쯤 칼러픽커 프로그램을 설치하여 웹에서 사용을 해봤을것이다.
하지만 이 플러그인은 그런 기능은 당연히 제공해주며 사이트에서 사용되고 있는 칼라코드를 뽑아준다.
차트로 표현하는 동시에 메인칼라, 포인트 칼라등 화면에 사용된 컬러값을 쉽게 보여준다.
물론 픽커 기능은 당연히 제공한다.

IEviewhttps://addons.mozilla.org/ko/firefox/addon/35
가끔 파이어폭스로 신나게 서핑을 하다가 황당한 화면을 많이 볼 수 있는 경우가 많은데,
대체적으로 은행이나 관공서 홈페이지가 그렇다.
심지어 크로스브라우징을 전혀 고려하지 않은 사이트도 볼 수도 있는데.
이럴 때 익스플로러를 다시 키고 주소를 입력하는 번거러움을 줄이는 ieview가 있다.
마우스 우클릭후 익스플로러로 보기 하면 익스화면으로 화면이 켜진다.
IEtab이라는 프로그램도 있지만 은행에서 사용하는 엑티브X를 사용하려면 ieview로 새로운 익스 브라우져를 키는게 유용하다.

Leave Comments

댓글 쓰기 권한이 없습니다. 회원 가입후에 사용 가능합니다