[WP] 워드프레스 포스트에 사진의 EXIF 정보 플러그인
포스트 내용 중에 포함된 사진의 EXIF 정보를 출력하기 위해 테마 파일에 추가했던 코드를 따로 빼서 플러그인으로 만들었다. 워드프레스 플러그인은 이번이 처음이라 제대로 한 것인지 자신은 없지만 일단 나중을 위해서라도 기록해두는 것이 좋을 듯 하여 포스팅한다.
이름은 대충 post-exif-info 라고 했다. 아래는 플러그인 파일의 코드이다.
<?php
/**
* @package Post EXIF Info
* @version 1.0
*/
/*
Plugin Name: Post EXIF Info
Plugin URI: https://chicpro.dev/
Description: This plugin prints exif infomation of photos in post.
Author: Seongho Jang
Version: 1.0
Author URI: https://chicpro.dev/
*/
require ( plugin_dir_path( __FILE__ ) . '/exif.lib.php' );
// Register style sheet.
add_action( 'wp_enqueue_scripts', 'register_exif_info_style', 100 );
/**
* Register style sheet.
*/
function register_exif_info_style() {
wp_register_style( 'post-exif-info', plugins_url( 'post-exif-info/style.css' ) );
wp_enqueue_style( 'post-exif-info' );
}
add_filter ('the_content', 'print_exif_info', 100);
플러그인 : post-exif-info.zip
사용하는 테마에 따라서 사진의 EXIF 정보가 출력되지 않는 경우가 있을 수 있는데 이럴 경우 플러그인 exif.lib.php 파일의 get_post_photos 함수 중 아래 코드의 패턴을 수정해야 한다.
$pattern = '#<a href="([^"]+)"[^>]+><img[^>]+></a>#is';
워드프레스 플러그인 개발은 좀 더 살펴보고 싶다는 생각이 든다.
2017.11.15 추가
ngx_pagespeed 모듈을 서버에 적용했더니 위의 정규식 $pattern 형태가 일치하지 않아 아래처럼 $pattern 값을 아래처럼 변경
$pattern = '#<a href="([^"]+)"[^>]*>.*<img[^>]+></a>#i';
pagespeed 모듈의 설정을 변경하면 또 이래야할 것 같은데.. 큰 일이다.