워드프레스 포스트 수정일 표시하기

워드프레스에서 제공하는 Twenty Eleven 템플릿에는 포스트 수정일이 표시가 되지 않는다. 수정일은 get_the_modified_date() API를 이용해서 구할 수 있고, Twenty Eleven 템플릿에서 등록일 표시는 /wp/wp-content/themes/twentyeleven/functions.php 파일의 twentyeleven_posted_on() 함수에서 담당하고 있다.

twentyeleven_posted_on() 함수를 다음과 같이 수정하면 수정일이 작성일 뒤에 표시가 된다. 작성일과 등록일이 같은 날이면 표시를 하지 않는다.

function twentyeleven_posted_on() {
    $u_time = get_the_date();
    $u_modified_time = get_the_modified_date();

    /* 작성일과 수정일을 비교한다. 같은 날이면 수정일은 표시하지 않는다 */
    if ($u_modified_time != $u_time) {
        printf( __( '<span class="sep">Posted on </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a> and last modified on <a href="%1$s" title="%5$s" rel="bookmark"><time class="entry-date" datetime="%6$s" moddate>%7$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%8$s" title="%9$s" rel="author">%10$s</a></span></span>', 'twentyeleven' ),
            esc_url( get_permalink() ),
            esc_attr( get_the_time() ),
            esc_attr( get_the_date( 'c' ) ),
            esc_html( get_the_date() ),
            esc_attr( get_the_modified_time() ),
            esc_attr( get_the_modified_date( 'c' ) ),
            esc_html( get_the_modified_date() ),
            esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
            esc_attr( sprintf( __( 'View all posts by %s', 'twentyeleven' ), get_the_author() ) ),
            get_the_author()
        );
    } else {
        printf( __( '<span class="sep">Posted on </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'twentyeleven' ),
            esc_url( get_permalink() ),
            esc_attr( get_the_time() ),
            esc_attr( get_the_date( 'c' ) ),
            esc_html( get_the_date() ),
            esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
            esc_attr( sprintf( __( 'View all posts by %s', 'twentyeleven' ), get_the_author() ) ),
            get_the_author()
        );
    }
}

맥 MAMP에 PHPUnit 설치하기

나는 맥 사용시 기본으로 설치되어 있는 PHP 대신 MAMP의 PHP를 사용한다. MAMP 환경에 PHPUnit을 설치하는 방법을 설명하고자 한다.

PATH 추가하기

.bash_profile을 수정한다.

$ vi ~/.bash_profile

다음 라인을 추가해서 MAMP가 먼저 검색되도록 한다.

export PATH=/Applications/MAMP/bin/php/php5.3.14/bin:$PATH

터미널을 재시작 하거나 다음 명령을 수행해서 PATH 환경변수가 변경이 되도록 한다.

source ~/.bash_profile

which를 사용해서 PATH가 제대로 변경이 됐는지 확인한다.

$ which php
/Applications/MAMP/bin/php/php5.3.14/bin/php

$ which pear
/Applications/MAMP/bin/php/php5.3.14/bin/pear

$ which pecl
/Applications/MAMP/bin/php/php5.3.14/bin/pecl

PEAR 업그레이드

$ sudo pear channel-update pear.php.net
$ sudo pear upgrade pear
$ pear version

PPHUnit 설치

$ sudo pear channel-discover pear.phpunit.de
$ sudo pear channel-discover pear.symfony.com
$ sudo pear channel-discover components.ez.no
$ sudo pear install phpunit/PHPUnit

설치확인

$ phpunit --version
PHPUnit 3.7.9 by Sebastian Bergmann.

PHP : PDO를 이용해서 MSSQL에 UTF-8로 접속하기

리눗스에서 MSSQL을 접속하기 위해서는 FreeTDS를 사용한다.  PHP에서 PDO를 이용해서 MSSQL로 접속하기 위해서는 이 FreeTDS를 사용하는 PDO_DBLIB를 사용해야 한다.

다음은 PDO를 사용해서 MSSQL 접속하는 예이다.

$dbh = new PDO("dblib:host=sqlserver;dbname=db;","id","passwd");
$sql = 'UPDATE Category SET Name = N? where CategoryID = ?';
$sth = $dbh->prepare($sql);
$sth->execute(Array($name, $id));

만약에 위의 Category 테이블의 Name 컬림이 NVARCHAR 형태라면 다음처럼 수정을 해야 데이타가 제대로 갱신된다.

$dbh = new PDO("dblib:host=sqlserver;dbname=db;charset=UTF-8","id","passwd");
$sql = 'UPDATE Category SET Name = N? where CategoryID = ?';
$sth = $dbh->prepare($sql);
$sth->execute(Array($name, $id));