[wp] 自作したショートコードをビジュアルエディタ内で置換する

WordPressに標準搭載されているGalleryショートコードでは、
HTMLエディタの時は[gallery]なんだけど、ビジュアルエディタにした時には画像が表示されるようになっている。

wp-gallery

ギャラリーに限らずとも、この置換が再現出来れば自作したショートコードの見やすさが段違い。

で、実際やってみたら今まで記事に書いた事の範囲でさっくり出来てしまったので、
アクティブテーマディレクトリ下にあるイメージディレクトリのURLを出力するショートコードを例にして、方法を書いてみます。

2019年時点ではこのコード動かないので、TinyMCE(v5)バージョンも書きました

続きを読む

[wp] GoogleMaps を記事本文内に埋め込むショートコードの作成(応用)

基本編で適当に作ったショートコードを改変してマーカーを増やす。

Gmap shortcode

ショートコード間に書いたHTMLとかがそのまま出力されるのは同じで、

  • マーカーを増やす
  • タブ表示
  • 最大化表示
  • style属性でheightの設定
  • showMapBlowup()

以上を追加。

1記事1MAPで複数表示は(使う用事がなかったので)未対応。

続きを読む

[wp] GoogleMaps を記事本文内に埋め込むショートコードの作成(基本)

各記事ごとにマップを埋め込むのはプラグイン使えばいいんだけど、
地図のポイントと記事を連動させる必要がない場合もあるし、
WordPressのページ機能で作成されたページ(例えば会社概要だとか)にだけ埋め込みたいとか、
地図に表示するマーカーが複数あるとか、タブで表示する情報を自由に制御したい…なんてケースもあるわけで。

プラグイン使うほどでもないならショートコード自作して埋め込めばいいじゃないか! 😀 という記事です

単体マーカー

続きを読む

[WP]WordPressテンプレートカスタマイズ用小技メモ(3)

テンプレートカスタマイズするときに使えそうなソースをつらつら書き散らすよ!(その1その2
自作関数ネタが多いです。

METAタグのgeneratorを消す

デフォルトだとheadにwordpressが自動でgeneratorを追加しますが

<meta name="generator" content="WordPress 2.7" />

meta name=”generator”はセキュリティ的に入れない方がいいと言われてます。
これ入ってるとバージョンアップサボってるのもモロバレ。(ex:このブログ)

アクティブテーマのfunctions.phpに以下1行追加

remove_action('wp_head', 'wp_generator');

remove_action()関数は必要のない動作を一発で消す事が出来るので覚えとくと便利。

keyで指定したカスタムフィールドの値を取得する

プラグイン使わなくても一応出来るよ。ってことで。

functions.php

function getCustom($key,$id) {
	$custom = get_post_custom_values($key, $id);
	if(count($custom)!=1)
		return implode("<br />",$custom);
	else
		return $custom[0];
}

値が複数ある場合は改行でくっつけてから帰します。

テンプレートファイルのループ内

print getCustom("key",get_the_ID());

the_ID()使うならループ内、変数とかに入れておけばループ外でもいける。
直接テンプレートファイル内に関数の部分入れて処理しても良い。

続きを読む

[WP]ショートコードAPI仕様メモ

wordpress2.5から実装されたショートコードについて。
ショートコードというのは、タグの簡易版みたいなものです。プラグインではよくお目にかかります。
2.5から本文中に[gallery]と入力すると、その記事でアップロードされた画像がサムネイルで一覧表示される機能がありますが、こういうのを自作できるわけです。

胡散臭いまとめは信用ならねぇ、という方は公式サイトの説明を見てください。
※この記事は本家解説の完全翻訳はしてません

手っ取り早く作ってみる

下のソースをアクティブになってるテーマのfunction.phpにコピペする。

function bartag_func($atts) {
	extract(shortcode_atts(array(
		'foo' => 'no foo',
		'baz' => 'default baz',
	), $atts));

	return "foo = {$foo}";
}
add_shortcode('bartag', 'bartag_func');

▼投稿画面で次のタグを記入すると、それぞれ違う出力結果になります。

[ bartag ]と本文に投稿→foo = no foo
[ bartag foo=”bar” ]と本文に投稿→foo = bar

続きを読む