Skip to content

Instantly share code, notes, and snippets.

@pimpmywp
pimpmywp / class-pm-scripts.php
Last active December 11, 2015 11:18
[WordPress] wp_enqueue_script(), wp_enqueue_styles() で出力されるタグからtype属性を除いてHTML5ぽくしつつ、scriptタグでも条件付きコメントを使えるようにする
<?php
if ( ! class_exists( 'PM_Scripts' ) ) {
class PM_Scripts Extends WP_Scripts {
public function __construct() {
parent :: __construct();
}
public function print_extra_script( $handle, $echo = true ) {
if ( !$output = $this->get_data( $handle, 'data' ) )
return;
@pimpmywp
pimpmywp / theme-customization-api.md
Last active December 10, 2015 21:39
[WordPress]Codex Theme Customization API の日本語訳

#はじめに

WordPress 3.4 で追加されたテーマカスタマイズ API で、テーマカスタマイズ管理画面をカスタマイズすることができます。 テーマカスタマイズ画面(つまり "テーマカスタマイザー")ではサイト管理者がテーマ設定を変更し、それをリアルタイムでプレビューすることができます。

ここではテーマカスタマイズ API と、テーマ内での利用の仕方を説明します。

この記事は、あなたが WordPress のテーマやプラグイン作成について説明している テーマの作成プラグインの作成 を読んでいることを前提としています。また、オブジェクト指向プログラミングについての理解も必要です。WordPress の セッティング API に精通しているなら、より理解しやすいでしょう。

注意:この情報は WordPress バージョン3.4 以降のものです。

@pimpmywp
pimpmywp / pm-trace-included-files.php
Last active April 1, 2016 15:58
[WordPress] インクルードされたテーマ関連ファイルをDebug Bar(Extender)の Variable Lookup で確認できるようにする。 ※テーマのフッターで wp_footer(); していること。
<?php
add_action( 'wp_footer', 'pm_trace_included_files' );
function pm_trace_included_files() {
$includeds = array_values(
str_replace(
get_theme_root()
, ""
, array_filter(
get_included_files()
, create_function( '$f', 'return 0 === strpos( $f, get_theme_root() );' )
@pimpmywp
pimpmywp / class-pm-schedule-post.php
Created December 29, 2012 08:21
[WordPress] 記事の公開開始日時・公開終了日時をカスタムフィールドで個別/同時に指定する
<?php
if ( ! class_exists( 'PM_Schedule_Post' ) ) {
class PM_Schedule_Post {
protected $from = '';
protected $to = '';
protected $label = '';
public function __construct( $from, $to, $label = 'expired' ) {
$this->from = $from;
$this->to = $to;
@pimpmywp
pimpmywp / pm-fix-admin-menu-order.php
Created December 28, 2012 15:02
カスタム投稿タイプが多い時に管理画面メニューでの並び順をまとめるスニペット
<?php
add_filter( 'custom_menu_order', '__return_true' );
add_filter( 'menu_order' , 'pm_menu_order' );
function pm_menu_order( $menu_order ) {
$menu = array();
foreach ( $menu_order as $key => $val ) {
if ( 0 === strpos( $val, 'edit.php' ) )
break;
@pimpmywp
pimpmywp / class-pm-widget-banner.php
Last active December 10, 2015 05:38
PM_Uploader を利用したバナーウィジェット(WordPress 3.5以降)
<?php
if ( ! class_exists( 'PM_Widget_Banner' ) ) {
add_action( 'widgets_init', create_function( '', 'new PM_Uploader; register_widget("PM_Widget_Banner");' ) );
require_once( 'class-pm-uploader.php' );
class PM_Widget_Banner extends WP_Widget {
function __construct() {
@pimpmywp
pimpmywp / class-pm.php
Created December 26, 2012 17:02
Pimp My シリーズの便利関数をまとめたクラス
<?php
if ( ! class_exists( 'PM' ) ) {
class PM {
public function get_theme_directory( $file, $childonly=false ) {
$located = '';
$file = trim( $file, '/' );
if ( file_exists( STYLESHEETPATH . '/' . $file ) )