Blog

  • 당신이 워드프레스 관리자 화면을 어색해 하는 이유

    들어가며 본 포스트는 UI 디자인 등에 대한 전문적인 의견이 아니라, 워드프레스 관리자 화면이 어색하다는 사람들을 설득하기위해 써 본 글임을 알려 드립니다. 올바르지 못한 점이 있다면  피드백 부탁드립니다. 처음 쓰는 툴이니 어색한 것은 당연하겠지만, 워드프레스를 초심자들은 많은 부분들을 어색해합니다. 그 중은 상당히 오랜 기간 학습을 필요로 하지요. 그 중 대표적인 하나로 “관리자 화면”을 들 수 있습니다.…

  • 코드 행복론

    코드는 행복해야 한다. 그 클래스나 모듈 내에서 코드가 행복해 하면 좋다고 생각한다. 물론 어떤 것이 행복하냐? 물으면 그건 프로그래머 각자의 생각에 따라 다루겠지. 서로의 시각이 다르니, 같은 코드라도 다른프로그래머의 각각 다른 시선으로 “필터링” 되면 쓰레기가 될수도, 진주같이 빛나는 코드가 될 수 있다. 애매모호하다. 코드는 논리적이다. 그래서 대부분의 경우 확실하게 잘잘못을 나눌 수 있는 명제의 문제가…

  • 테마를 별도의 디렉토리로 옮기기

    개발 의도상 테마를 별도의 디렉토리에 두고 싶은 생각이 들었다. 플러그인을 놓고 쓰는 것처럼 말이다. 그런데 wp-config.php 코덱스를 참고해도 플러그인의 경로를 바꾸는 일은 허용되나, 테마에 대해서는 이런 설정이 공식적으로는 존재하지 않는다. 테마를 별도로 쓰려면,  wp-contents 디렉토리를 벗어나지 않는 한에서 변경하기를 권장하기도 한다. 사실 실사용 서버에 이런 일을 할 필요는 없다. 단지 개발 서버상에서만 편하자고 하는 일이다.…

  • 특정 포스트의 권한을 제어하는 레시피

    User Role Editor 보다 더욱 세밀한 권한 체크를 진행시킬 수 있는 레시피. ‘user_has_cap’ 필터를 잘 활용하면 된다. 좀 더 구체적인 예로 설명을 하자. 만일 내가 포스트 아이디 1141번을 임시 글로 등록해 두었다고 가정하자. 그리고 단지 이 포스트에 대해서만은 editor들은 편집을 허용하지 않게 만들고 싶다. 그렇다면 다음처럼 코드르 만들 수 있다. 커스텀 포스트 타입은 ‘music_collection’이고 적절히…

  • 어드민 화면의 열 수를 1개로 고정하는 레시피

    add_filter( ‘screen_layout_columns’, function ( $columns ) { $screen = get_current_screen(); $columns[ $screen->id ] = 1; return $columns; } ); add_filter( ‘get_user_option_screen_layout_kpm_paper’, function ( $value ) { return 1; } ); add_action( ‘in_admin_header’, function () { $screen = get_current_screen(); if ( $screen->id == ‘kpm_paper’ ) { $screen->remove_option( ‘layout_columns’ ); } } );  커스텀 포스트에 활용할 수…

  • 안녕 iPhone 4S

    2017년 02월 18일 토요일자로 6년간 사용한 아이폰을 교체했다. 갤럭시 A5 2017 모델이 이제 내 새로운 폰이 되었다. 그동안 많은 일을 같이 겪어준 폰인데, 물건에 감정을 너무 쓴 걸까? 마음이 짠하다. 대학원 때, 아르헨티나 때, 귀국 후 인턴, 게으른 프리랜서(?), 일산 고시원 시절하며 최근에 이르기까지… 늘 내 손, 호주머니, 가방에 있었던 녀석이었다. 그렇지만 이제는 너무나 느려지고,…

  • 워드프레스 플러그인 개발 세팅

    팁이라고 하기는 너무 거창하고… 현재의 내 상태를 기록해 두는 뜻으로 포스팅을 해 봅니다. 워드프레스를 개발할 때 즐겨 사용하는 세팅을 기록합니다. 고도로 숙련된 세팅이라고 할 수는 없으니, 저 아닌 다른 분들은 “아, 얘는 이런 식으로 쓰는 구나” 하고 참고만 해 두셨으면 합니다. 기본 환경 OS OS는 리눅스 민트를 사용합니다. 리눅스 중에서는 가장 대중적이고, 무탈하고 쓰기 편합니다.…

  • WP_Hook이 새로 만들어졌다고?

    요즘 워드프레스에 뜸했다. 며칠 전 워드프레스 4.7.1을 보다가 훅의 구현이 엄청나게 변한 것을 알게 되었다. 구체적으로 어떤 점이 변경되었는지 알아 보자. 우선 이 포스트에서 WP_Hook 이란 클래스가 새롭게 도입되었다는 사실을 발견할 수 있었다. 저 포스트에서 발견한 trac 페이지를 참고하면 대략 다음과 같은 이유로 도입이 되었다는 사실을 접할 수 있다. 필터와 액션은 아주 오래전부터 워드프레스의 플러그인…

  • National Geographic: Photo of the Day All List CSV

    photo-of-the-day는 National Geographic photo of the day 페이지의 모든 서비스 사진들의 목록을 제공합니다. 드롭박스 링크는 매일 갱신되며 photo of the day 서비스를 시작한 2009년 01월 01일부터 현재까지 모든 사진의 URL과 이미지 링크 목록을 담고 있습니다. CSV 목록 다운로드

  • predix-seed 자동 빌드 스크립트

    요즘 predix를 열나게 파고 있는 중이다. 엔터프라이즈급의 프레임워크라 따라 하기가 매우 버겁지만, 어쨌든 천천히 진행중이다. predix-seed라고 github에 있는 샘플 앱을 가져다가 빌드해 보았는데, 생각보다 매우 여러 점에서 실수할 확률이 높다는 것을 알았다. 그래서 부족한 쉘 스크립트 능력을 끌어 모아 어쨌든 자동화해 보았다. gist 참고 참고할 문서들 https://www.predix.io/docs/?r=291908#zPpm2vcE https://forum.predix.io/answers/2756/view.html 구글에서는 잘 검색이 되지 않고, 포럼을 활용하는…

  • 커스텀 포스트 역할과 권한 옵션 집중 분석

    역할과 권한에 대한 항목에는 다음 옵션들이 있다. capability_type capabilities map_meta_cap 전체 옵션은 이 포스트에서 확인할 수 있다. 역할과 권한 워드프레스의 권한(authority) 시스템은 매우 잘 구축되어 있다. 권한은 세부적으로 역할과 권한(capability)으로 쪼개어져 문맥(context)에 따라 어떤 작업을 허가할 수도, 거부할 수도 있도록 조직되어 있다. 역할 (Roles) 사실 ‘역할’은 ‘권한’보다는 커스텀 포스트와는 덜 밀접한 관계이긴 하지만 권한과 역할이…

  • 커스텀 포스트 말단지점(endpoint)과 다시 쓰기(rewrite) 옵션 집중 분석

    말단지점(endpoint) 및 다시 쓰기(rewrite) 기능은 URL 축약과 고유주소 생성과 관련 깊은 옵션이다. 여기에 해당하는 옵션은 단 2개로 수가 적지만, 커스텀 포스트 옵션 중 서버의 기능과 밀접한 부분이다. 내가 포스트를 쓰면서 가장 염두에 둔 포인트이기도 하고. permalink_epmask rewrite 나머지 옵션에 대해서는 이 포스트를 참고하자. 워드프레스의 rewrite에 대해 커스텀 포스트의 옵션 값과는 약간 거리가 있지만, 우선 워드프레스가…

  • 커스텀 포스트 분류 및 기타 옵션 집중 분석

    이 포스트에서는 분류(taxonomy) 및 기타 옵션에 대해 다루어 본다. 옵션 목록은 다음과 같다. can_export description hierarchical taxonomies 모든 목록은 이 포스트에서 확인할 수 있다. can_export 내보내기 기능에 해당 커스텀 타입도 포함시키는 옵션이다. 이것이 true 이면 도구(tools) > 내보내기 (export) 메뉴에서 커스텀 타입도 포함된다. 내보내기를 하면 XML 형태로 사이트의 콘텐츠를 다운로드 받을 수 있다. 단, 주의해야…

  • 커스텀 포스트 관리 UI 관련 옵션 집중 분석

    이 포스트는 커스텀 포스트의 관리 UI(admin UI)와 관련된 옵션을 다룬다. 목록은 아래와 같다. public show_ui show_in_nav_menus show_in_menu show_in_admin_bar menu_position menu_icon supports register_meta_box_cb public 옵션은 관리 UI 관련 옵션에도 관여하지만 가시성 관련 옵션에도 관계가 있다. 해당 포스트에서 확인할 수 있다. 전체 옵션은 이 포스트에서 확인할 수 있다. public이 true이면 show_in_hav_menus, show_ui 옵션이 true. 반대로 false이면 모두…

  • 커스텀 포스트 집중 분석

    언젠가는 한 번 잡아서 해 볼 포스팅이었는데, 시간이 없다는 핑계로 엄청나게 미루고 있었다. 그치만 다시 여유가 넘치는 생활로 돌아오니, 이제는 다루고 넘어가야겠다는 생각이 든다. 커스텀 포스트는 워드프레스를 자신의 취향에 맞게 활용하기 위한 핵심적인 기능 중 하나라고 할 수 있다. 이 지루한 포스팅을 더 지루하게 만들고 싶지는 않다. 커스텀 포스트가 왜 필요한지, 그것이 무엇인지에 대해서는 설명을…

  • 커스텀 포스트 가시성 관련 옵션 집중 분석

    이 포스트에서는 커스텀 포스트의 가시성과 관련된 옵션을 다룬다. 목록은 아래와 같다. public exclude_from_search publicly_queryable query_var has_archive 전체 옵션은 이 포스트에서 확인할 수 있다. 이 옵션션들은 개체를 워드프레스 전단부(frontend, 일반 사용자가 만나게 되는 사이트 외부 화면)에 노출시키는 방법과 관련이 있다. 참고로 아래 글들은 모두 고유 주소(permalink)를 기본(plain)으로 세팅하였을 때로 상정하고 작성하였다. public 프리셋 같은 옵션이다. 이것…

  • 커스텀 포스트 레이블 집중분석

    커스텀 포스트 레이블은 꽤 많은 경우 사소한 문제로 넘어가게 된다. 보통 커스텀 포스트를 워드프레스 기본 포스트 타입인 ‘포스트’와 유사하게 별도의 작성자가 꾸준히 어떤 콘텐츠를 작성(주로 수동으로)해 발행하기 위한 용도로는 잘 사용해 본 적이 없기 때문이다. 그러다 보니 레이블에 대한 인식은 많이 낮았다. 또 레이블에 별로 신경 쓰지 않아도 코어가 ‘post’나 ‘page’ 타입에 의거해 기본적인 레이블을…

  • 내가 어쩌다?

    내가 어쩌다 이렇게 워드프레스 개발에 깊숙히 들어오게 된 걸까?

  • 우커머스 결제/배송 정보 관련 의문점

    의문점. 결제 관련 정보(Billing details)에서는 결제자의 이메일과 전화번호를 적는 란이 있다. 그런데 배송 정보(Shipping details)에는 그렇지 않다. 조금 전 생짜 워드프레스에 우커머스만 올려 놓고 테스트를 해 배송 정보에는 이메일과 전화번호 필드가 포함되지 않음을 확인했다. 간혹 우커머스의 결제와 배송이 서로 다른 경우에는 어떻게 하란 말인가? 한국에서는 배송을 할 때 배송 상자에 받는 사람의 전화번호도 같이 적게…

  • Korean Conversation #1

    오늘 처음으로 한국어 대화 자원 봉사에 참가해 보았다. 여러 사람을 만날 수 있는 좋은 기회가 된 것 같다. 첫 만남은 류선우 씨. 오스트리아 사람. “오늘은 커피가 땡긴다.” “그들은”에서 “그 애들은”이나 “걔네들은” 이란 표현을 알려 줌 둘째 만남은 뮤리엘. 미국 플로리다의 사람. 춤을 좋아하고 댄서가 되고 싶어하는 현 영어 강사. 계피는 좋지만 넛멕(nutmeg)이라는 알 수 없는…