Skip to content

Instantly share code, notes, and snippets.

@wokamoto
wokamoto / relative-uri.php
Created January 25, 2013 09:47
[WordPress] すべての URL を相対 URL に置換する ( ただし OGP 内の画像等は、置換しない)
<?php
class relative_URI {
function relative_URI() {
add_action('get_header', array(&$this, 'get_header'), 1);
add_action('wp_footer', array(&$this, 'wp_footer'), 99999);
}
function replace_relative_URI($content) {
$home_url = trailingslashit(get_home_url('/'));
$parsed = parse_url($home_url);
$replace = $parsed['scheme'] . '://' . $parsed['host'];
@wokamoto
wokamoto / http2_push.php
Last active June 8, 2018 07:48
[WordPress]http2_push.php
<?php
add_action('template_redirect', function(){
if ( headers_sent() ) {
return;
}
do_action('wp_enqueue_scripts');
foreach( array('style' => wp_styles(), 'script' => wp_scripts()) as $as => $wp_links ) {
$link = '';
@wokamoto
wokamoto / update-distribution.sh
Created May 1, 2018 08:39
[AWS][CloudFront] 既存の CloudFront をまとめて IPv6 Enabled に変更する ref: https://qiita.com/wokamoto/items/7eef100532fcced8d6d0
#!/bin/bash
DIST_IDS=$(aws cloudfront list-distributions | jq -r '.DistributionList.Items[] | select(.IsIPV6Enabled == false) | .Id')
for DIST_ID in ${DIST_IDS}; do
ETAG=$(aws cloudfront get-distribution --id ${DIST_ID} | jq -r '.ETag')
CONFIG_JSON=$(mktemp)
jq -s '.[0] * .[1]' <(aws cloudfront get-distribution --id "${DIST_ID}" | jq '.Distribution.DistributionConfig') <(echo '{"IsIPV6Enabled": true}') > ${CONFIG_JSON}
aws cloudfront update-distribution --id ${DIST_ID} --distribution-config file://${CONFIG_JSON} --if-match ${ETAG}
rm -f ${CONFIG_JSON}
done
@wokamoto
wokamoto / create-snapshot.sh
Last active April 20, 2018 21:04
[AWS-CLI] 自分のボリュームのスナップショットとるやつ
#!/bin/sh
SHELLDIR=`dirname ${0}`
SHELLDIR=`cd ${SHELLDIR}; pwd`
SHELLNAME=`basename $0`
LOG_DIR="/var/log"
LOG_SAVE_PERIOD=14
LOG_FILE="${LOG_DIR}/${SHELLNAME}.log"
AZ=`curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone`
@wokamoto
wokamoto / file0.txt
Created March 2, 2018 11:57
[AWS] CloudFront が使用する IP レンジを調べる ref: https://qiita.com/wokamoto/items/fd9c064c3608912085c1
curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.service=="CLOUDFRONT")
@wokamoto
wokamoto / file0.txt
Last active February 23, 2018 11:36
[WordPress][Nginx] Nginx 1.13.9 に実装された http2_push_preload を使って HTTP/2 push してみる ref: https://qiita.com/wokamoto/items/63b47c1b320807d6380b
$ sudo /opt/local/provision
$ nginx -v
nginx version: nginx/1.13.9
@wokamoto
wokamoto / cf_wp_is_mobile-fx.php
Created January 24, 2018 01:46
[WordPress] wp_is_mobile() を CloudFront に対応させる
<?php
add_filter( 'wp_is_mobile', function( $is_mobile ) {
// CloudFront でスマートフォンと判定された場合、true を返す。
if ( isset($_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_MOBILE_VIEWER'] ) {
$is_mobile = true;
}
// CloudFront でタブレットと判定された場合、true を返す。
// (タブレットはPCと同じ扱いにしたい場合は、$is_mobile を false にする
if ( isset($_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER']) && "true" === $_SERVER['HTTP_CLOUDFRONT_IS_TABLET_VIEWER'] ) {
@wokamoto
wokamoto / gist:6ca10bced5ca18562273745b50a7a428
Created January 22, 2018 08:04
[WordPress][CloudFront] ログイン時にプレビューが即時反映されない問題に対する fix 案
<?php
// CloudFront で Cookie key wordpress_last_visit をオリジンに渡すようにしておくこと
add_action( 'plugins_loaded', function(){
if ( is_user_logged_in() ) {
setcookie( 'wordpress_last_visit', time() );
}
});
@wokamoto
wokamoto / file0.txt
Created December 22, 2017 03:28
[WordPress] Redis Object Cache プラグインとか導入するとキャッシュがきつすぎてオプションが保存されない時あるよね ref: https://qiita.com/wokamoto/items/3498bb74d492258585f7
<?php
wp_cache_delete ( 'alloptions', 'options' );
?>
@wokamoto
wokamoto / gist:8841077
Last active August 12, 2017 00:44
[WordPress][Backlog API] CF7 to Backlog
<?php
/*
Plugin Name: WP CF7 to Backlog
Plugin URI:
Description:
Author: wokamoto
Version: 0.0.1
*/
include_once( ABSPATH . WPINC . '/class-IXR.php' );