作成者別アーカイブ: ジジイ

Contact form 7 送信ボタン押したときにjavascriptを動かしたいのに動かない

Contact form 7 送信ボタン押したときをtriggerにして、javascriptを動かしたいのに動かなかった件。
えらい時間食ったぜ。

やりたかったこと。
送信ボタンを押してエラーがあったら、ページTOPに自動スクロールさせる、っていうだけのこと。
これがぜんぜんできない。
「triggerが用意されているので…」なんていうページは散見できるのだけれど、どうやってもできない。
↓こういうのが典型。(けっして悪いっていう意味じゃありません。)
https://qiita.com/uto-usui/items/a5797e011970b938ed2a

たぶん古いやり方になっちまったんだろうね。
結論から言うと、答えはこの公式ページにあった。
https://contactform7.com/ja/dom-events/

document.addEventListener( 'wpcf7invalid', function( event ) {
var position = $('form.wpcf7-form').offset().top;//ここはエラーが出た最上段を指定するとかでもいいよね。
$('html, body').animate({
scrollTop: position
}, 700);
}, false );

これで動いた。
うぃー、しびれたよ。
あとで思えば、こういったページには
https://qiita.com/konweb/items/876bf71fbba3b86bcda3
/wp-content/plugins/contact-form-7/includes/js/scripts.js には、↓こういうtriggerがあるよ、

$(data.into).trigger('wpcf7:invalid');

って書いてある。
どこで発火しているのか調べてみたけど、なんか静かだったな。どうなってるんだろ。

他にも、調べているうちにいろんな原因で動かせない場合があるようだね。
・wp_header(); wp_footer();が記述されていない。
・HTMLのマークアップが壊れている
とかね。

がんばってみてくれ!

Contact form 7はたしかに簡単にフォームが作れるところが優秀なんだけれども、やっぱり確認画面だとか普通に出ていいと思うよ。JSだらけで余計なDOMありすぎ、っていうね。送信完了で出てくるUIも微妙。送れたことがしっかりわかればAjaxでもなんでもいいんだよな。

WORDPRESSのURLをカスタマイズしてGETパラメータをかっこよく取得

WORDPRESSのURLをカスタマイズして、GETで送るパラメータをかっこよく取得する方法です。
結果から言うと「add_rewrite_rule()」という関数を使います。
ちゃんと追ってやれば簡単ですが、ちゃんとやらないとできません。

詳しくはオフィシャルがとっても詳しいです。

Rewrite API/add rewrite rule
https://wpdocs.osdn.jp/Rewrite_API/add_rewrite_rule

こんな風なURLでアクセスさせたいページがあったとしたら、
http://example.com/leaf/95

functions.phpにこのように記述しろ、とあります。
function custom_rewrite_basic() {
add_rewrite_rule('^leaf/([0-9]+)/?', 'index.php?page_id=$matches[1]', 'top');
}
add_action('init', 'custom_rewrite_basic');

※([0-9]+)とか入っていますが、正規表現ですね。この場合は、数字の文字列を取得しますよ、っていう感じです。そこに入った数字は$matches[1]として使えます。

ですが、やってみるとなかなかできない…。
書かれてある通りやってもできない。
原因は重要な注意書きを読み飛ばしたことでした。

重要: リライトルールの変更後は、忘れずにリライトルールデータベースの内容をフラッシュし、再作成してください。WordPress の 管理画面から、「設定」->「パーマリンク設定」を選択し、何も変更せずに「変更を保存」をクリックしてください。これで同じページに対して、以下の形式でアクセスできます。

はい、簡単ですね。パーマリンクを更新することが必要だったわけです。

でも、作業をしているときにいちいちパーマリンク更新も面倒ですよね。
そんなときは、下のようにflush_rewrite_rules()をfunctions.phpに記述しておくと作業が楽になります。

add_action('init', function(){
flush_rewrite_rules(false);
});

作業が終わったら取ってしまいましょう。

以下はわたしが作業した時の例です。

function custom_rewrite_tag() {
add_rewrite_tag('%item%', '([^&]+)');//商品IDとしていますが、なんでもいいです。
add_rewrite_tag('%form_number%', '([^&]+)');//使用するフォームのID
}
add_action('init', 'custom_rewrite_tag', 10, 0);

function custom_rewrite_urls() {
add_rewrite_rule('^form/([0-9]+)/item/([0-9]+)/?','index.php?page_id=11&form_number=$matches[1]&item=$matches[2]','top');
//page_id=11というのは、固定ページのIDで、フォーム用に1ページこさえたものです。
}
add_action('init', 'custom_rewrite_urls', 10, 0);

add_action('init', function(){
flush_rewrite_rules(false);//パーマリンクの更新用。作業が終わったらadd_actionごと削除ね。
});

この例はちょっとだけややこしいです。
Contact form 7 を使って、フォームをいくつも用意する必要があったのですが、いちいち一つのフォームごとに固定ページを作るというのはどうもスマートじゃないですね。なので、ひとつの固定ページであらゆるフォームを表示切るようにしたくなったわけです。
フォーム用に1ページこさえて(例だとpage_id=11です)、そこにアクセスしてきたらform_numberのパラメータでcontact form 7のIDを取得。
itemも取得して、それを使って商品タイトルだのなんだのを引き出せばよいかなという感じです。

$form_number = esc_html($wp_query->query_vars['form_number']);
//一応esc_html()でエスケープしておきましょう。悪いコードを打ってきたりする輩がいないとも限らないので。
$item_id = esc_html($wp_query->query_vars['item']);
echo "商品IDは".$item_id."です。これを使って商品名などなど引っ張りますよ";
echo do_shortcode( '[contact-form-7 id="'.$form_number.'" title="Contact form 1"]' );

という感じです。
取り掛かりは難しいと思ったけど、終わってみるとそれほどじゃないって感じです。
頑張ってください。質問があればコメントで。

UBUNTU エラー解決 error running shared postrotate script for '/var/log/mysql.log /var/log/mysql/*log '

UBUNTU16を再インストールしてすべてクリーンになったと思ったら、前のUBUNTU12から続いていたエラーメールがまた来続けていた。
すべてをやり直せたと思っていたのに。

/etc/cron.daily/logrotate:
error: error running shared postrotate script for '/var/log/mysql.log /var/log/mysql/*log '
run-parts: /etc/cron.daily/logrotate exited with return code 1

そこでこのエラーを解消しようと検索してみると、様々な解説があった。
mysqlのパスワードが古いからold_Passwordを更新するといい、とか、それは邪道だとか。
どれを試してもだめだった。
おそらく環境に依存するのだろう。

ただ、状況としては、Logrotateが巡回するときに、パーミッションだかの関係でlogにアクセスできない、というようなことらしいことはわかってきた。
自分の場合は以下のファイルに、

vi /etc/logrotate.d/mysql-server

この1行を付け加えるとエラーが解消した。

su root root

ただ、このファイル「mysql-server」には以下のような記述のされ方がされていて、ほかで言われているような一番最後の行に差し込むのではうまく動いてくれない。
場所が肝だった。


/var/log/mysql.log /var/log/mysql/*log {
daily
rotate 7
missingok
create 640 mysql adm
compress
sharedscripts
su root root ここに書く
postrotate
test -x /usr/bin/mysqladmin || exit 0
# If this fails, check debian.conf!
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
# Really no mysqld or rather a missing debian-sys-maint user?
# If this occurs and is not a error please report a bug.
#if ps cax | grep -q mysqld; then
if killall -q -s0 -umysql mysqld; then
exit 1
fi
else
$MYADMIN flush-logs
fi
endscript
※ここに最初は差し込んでいて、動かなかった。
}

で、ついでなんだけれど、このファイルに

# If this fails, check debian.conf!

と書かれているのだけれど、原因はこれじゃないようだ。
また、確認はしても、/etc/mysql/debian.cnfを直接いじっちゃだめらしい。

ほかの人たちは、他の方法で解決しているみたい。試してみてね。
https://www.downtown.jp/~soukaku/archives/2011/0718_212533.html
https://www.mk-mode.com/octopress/2015/04/27/mariadb-mysql-error-on-logrotation/
http://blog.inouetakuya.info/entry/20130320/1363776504
http://www.white-room.jp/blog/?p=769

さくらサーバーのhtaccessによるリダイレクトでループを防ぐ書き方。httpからhttpsにリダイレクトなんか特に。X-Sakura-Forwarded-For

さくらサーバーのhtaccessによるリダイレクトでループを防ぐ書き方がわかったのでメモ。
httpからhttpsにリダイレクトなんか特にループに陥りやすいので、ひっかかるんじゃないでしょうか?
またWEBコーダーとはいえ、htaccessなんかの正規表現なんか専門じゃないから、どっかからコピペするしか手はなかったりします。
ですが、どれもこれもダメだったりしますね。それは借りているサーバーの環境が合わなかったりするからなんだそうです。

私の場合はさくらサーバーでhttpsを設定したので、httpからのアクセスは全部httpsへリダイレクトさせたい!というhttpsに慣れていない者の浮き足だったところの出鼻をくじかれたようなことになりました。

どのサイト見てもなかなかうまくいかず。。
それにそれぞれ若干書き方違かったりして、ひとつひとつ試してみないことにはわからない、っていう修行を行っておりました。
そこに、さくらサーバーには独自の設定が必要という記事をやっと見つけて、晴れてhttps業界に入れたわけでした。
これがそれです。

RewriteEngine On
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]

【参考サイト】
http://qiita.com/mikakane/items/92fc9858c8370fce4ad9
https://latele.co.jp/blog/back-end/2016/0418_10

要はX-Sakura-Forwarded-Forが入ってないと、さくらサーバーではダメってことなんですね。
よくわかりました…。難しいですが、みなさんの記事によって助かりますね。なので私もメモ。

PIXUS MG3630 突然つながらなくなる。。それはルーターのせいだった。

PIXUS MG3630 プリンタを使用しているのだが、突然つながらなくなることが多々ある。
そのたびにドライバーを入れなおしたり、設定をしなおしたりして、なんとか繋ぎ直す、なんてことをここ数ヶ月続けていたわけだ。
プリンタとは無線で接続している。これが問題なんだろう、とは思っていたが、全くもって解決を見出せなかった。
だが、ここにきて、ルーターの野郎が問題を起こしているようだと判明してきた。まだ確実じゃないが、こいつは濃厚だ。疑わしきは罰せず、そうわ言うけれど、原因を探るときには切りわけってもんが必要なのよ。

ルーターがまた古くて、バッファロー製 WZR-HP-G301NH。
http://buffalo.jp/products/catalog/network/wzr-hp-g301nh/
そろそろ買いなおしたいところだった。
こいつのAOSS機能を使ってプリンタとつながっている。そしてルーターを通り、各パソコンだのに接続されているわけだ。
AOSSについてはこちら。http://buffalo.jp/aoss/top.html

このAOSSはルーター外部についている物理ボタンを押すことでONにできるほど、簡単に設定できる。…簡単すぎやしねえか?とっつぁんヨぉ。
こんな外部にボタンをつけるほどってことは、何度も押す機会が前提となっているに違いない。そう、プリンタとつながらなくなったときは、このAOSSのボタンを長押しして、しばらくすると復活するのだ!ということを発見。そーんなにボタン何回もおさなくちゃならないの??と思うのだけれど、まあ、復帰方法がわかっただけでもとりあえずはいい。
もしルーター買いなおしたらこんなことは解消されててほしいなあ。

やり方は簡単。
AOSSのボタンを長押し(5秒くらいかなあ)するとAOSSのランプが点滅を早めるので、そのまましばらく待てばいい(1,2分かなあ)。
※外部にボタンつけているのって、これぐらい頻繁に接続切れることがあるから、押しやすいように、とプロダクトしてる逆説なんじゃねえかと思ったり(笑)。

ちなみにだが、AOSSの有効期限みたいのってあるんだろうか?つまり、AOSSのキャッシュっちゅうかな。IPの貸し出し期間みたいのってあるじゃない。
なんかつながらなくなる期間ってだいたい同じような気がするんで、そんなこと思った。
AOSSのセキュリティはおしえてgooで解説されてました。
https://oshiete.goo.ne.jp/qa/5085686.html

わからないことがあれば、コメント欄で質問OK。がんばろうぜ。

自サイトにあるWordPressをfile_get_contentsで引き込みたいとき

自サイトにあるWordpressをfile_get_contentsで引き込みたいときありますよね。
たとえば、Wordpressをブログとして使用していて、TOPページにも新着とかだしたいんだけど、、とかね。
どうやってやろうか、となると、javascript使ってもいいし、PHPで引き込んでも、なんでもいい。
今回はPHPのfile_get_contents関数を使用して引き込む例を紹介する。
file_get_contents関数を使用してもできない場合があるかもしれない。私ができていなかった張本人で、その注意点も挙げておきたい。

まずはもう、成功したときのコードを見てよね。これです。

<?php
$opts = array(
'http'=>array(
'header'=> "User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko"
)
);
$context = stream_context_create($opts);
if($handler = file_get_contents("http://".$_SERVER['HTTP_HOST']."/blog/?content=1",false,$context)){
echo $handler;
}else{
echo "none";
} ?>

※これは「もし/blog/っていうディレクトリでWordpress使用していたら」っていう例です。
まず一番上の「$opts」。これはオプションね。ファイルをゲットしにいくときに何者なのかを宣言するところです。
「User-Agent: Mozilla/5.0 (Windows...」と後に書かれていますが、
「あっしはIEのバージョン11と申します」という感じですかね、あんまり理解してもらわなくてもいいんですが、これが無いとゲットできないんです。

次の「$context」は、「$opts」をちょっと整える感じですかね。これもわからなくてもいいですが、必要です。

次の「if($handler = file_get_contents…」のところでファイルを取りにいきます。
「"http://".$_SERVER['HTTP_HOST']."/blog/?content=1"」がWordpressのある場所のURLを書くところです。
「/blog/」っていうディレクトリに置いてなければ、正しいものに書き換えてください。
「?content=1」ってなんだ??と思うかもしれません。Wordpressで出力されたHTMLすべてを取得するんなんらいいんですけど、全部はいらないですよね。
そういうときは、パラメーターがついているアクセスのときはちょっとだけ出力するように、Wordpressのテンプレートで分岐してしまうのがいいですね。
私はいつもそうしています。
「?content=1」がURLについているときは、新着だけの出力にする、という感じです。

できないときは?
でも、なかなかできないときもあるんですね。
私が間違えていたのは以下のような原因だったんですね。

・ユーザーエージェントを設定していなかった。
ユーザーエージェントというのは「User-Agent: Mozilla/5.0 (Windows...」これです。これを設定されていないアクセスは、Wordpressが肩透かし食らわすようにできているみたいで、エラーもないのに、なにもゲットできないというような状態で悩みました。

・「http://」で始まるURLにしていなかった。
PHPは相対ディレクトリで取りに行こうとしてしまうので、それだとWordpressが動かないんですわ。フルパスでアクセスさせるとうまくいきましたっすわ。

・「ベーシック認証」かかってた、、
テスト環境で「ベーシック認証」かけたまま作業していて、PHPがゲットしようとすると、ベーシック認証かかってて取りにいけなくなってた状態でずっと悩んでましたね。バカがバカに気がつけない、そんな状態ですね。

WordPressのテンプレートの中でfile_get_contentsを使いたいっていうときもありますね。
Wordpressが自前で「wp_remote_get」っていう関数を用意してくれています。
返り値の状態も一緒に取得できるので便利です。
また「stream_context_create」もしなくていいみたいです。出力は配列で['body']に入ります。

<?php
$opts = array(
'http'=>array(
'header'=> "User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko"
)
);
$handler = wp_remote_get( 'http://".$_SERVER['HTTP_HOST']."/blog/?content=1' . $opts );
if (!is_wp_error( $handler ) && $handler['response']['code'] === 200 ) {
echo $handler['body'];
} else {
echo "エラー";
} ?>

試してみてね!
わからなかったらコメントでご相談OK。

Photoshopで「不明なJPEGマーカー」とエラーが出てしまう件

PhotoshopでJPEGを開こうとすると「不明なJPEGマーカー」とエラーが出てしまうことがあった。

検索してみると「拡張子を.pdf.jpgのように二重にしない」とか「.pngにしたら開けた」とか紹介されている。
だが自分のケースの場合、どの方法も解決できなかった。

拡張子を変更する方法も「.tif」「.bmp」「.eps」「.png」「.gif」「.jpeg」「.psd」と思いつく限りすべて試したが、だめだった。

WinExChange(拡張子判別変換)というソフトで調べるとれっきとしたJPEGであると表示された。
ソフト配布元:http://www.55555.to/(極窓とかなつかしいね)

あきらめかけたとき、画像をブラウザにドラッグしてみたら表示された。
画像専門ソフトのはずのPhotoshopではエラーが出てしまうのに、ただのブラウザで開けてしまうというのはなにか違和感がある。
ということは、WEB系のJPGなんだな、と勝手に推測した。「WEB系のJPG」なんてものはないんだろうが、WEBに強いソフトであれば、ブラウザ以外だとPDFを開けるADOBE Acrobatだ。
Acrobatで開くとすんなり開いた。バージョンはCCだ。
別の形式で保存するでPNGにでもしたら普通のファイルになった。

なぜこんなことがおきるのか不明だが、たぶん激烈に古いMac環境とかで作られたJPGファイルなんだと思う。

PEARのamazonAPIから商品一覧を取得できるServices/Amazon.php。でもエラーで400。。。

PEARのamazon商品一覧を取得できるServices/Amazon.phpは大変便利なのだが、2017/8か9あたりから不調になっていた。
原因を調べるとPEARから吐き出されていたエラー400。久しぶりの冷汗だ。
たしかそのころAmazonのアカウントのメールアドレスを変更したぞ、と思い出してアソシエイト、APIのアカウントも変更しようとするも複雑だったあ…。
でもなんとかやったよ。
アカウントの目アドはアソシエイトもAPIのアカウントも全部そろえる必要があるってよ。アソシエイトからAPIアカウントを作成するときのページにけっこうでかでかと書いてある。。

晴れてメールアドレスが揃い、念のためアクセスキーとシークレットアクセスキーも取得しなおしておいた。
これで直った!はず!、と思ったけどダメ。PEARからは同じく400のエラー。

いろいろ調べるとサーバーの時間があっていないとそうなるよ、的な解説が散見できた。正確に言うと15分以上ずれているとダメらしいことまでわかってきた。
なのでサーバーの時刻を確認。ぜんぜん大丈夫、日本時間にぴったり。もしかして、、グリニッジ標準とかじゃないとダメなのか??世界のamazonはやっぱ違うな!、と今度はPHPでタイムゾーンを変えてみる。そんなことしても状況は変わらない。
どうしてだ、、、。と二日くらいくじけていた。
そこである記事を発見。
http://novelel.com/index.php/2015/09/01/post-189/
要約すると「アメリカのamazonに取得しに行ってしまうとダメだから日本のamazonに取得させるよう、Localeをセットすること」とあった。
これだ!と思って確認するも、

$amazon->setLocale('JP');

と、ちゃんと日本になっている。間違ってない。
じゃあ、なにがダメなんだ??とまた二日くじける。

あるとき「PEARがダメなんじゃね?その検証してぇ」と思って探してみると
https://www.panzee.biz/archives/6262
というページを発見。すごいよく作ってくれている。PEARなしで実験できるじゃん。
この作者お手製コードを使っても取得できなければ、PEARのせいではないことがわかるはず。
アクセスキーを入れて、実験開始!
…やっぱダメだ。。取得できねえ。
ということでこんどはアクセスキーじゃねえか?と疑いの矛先を変更して、何度もアクセスキーを発行してはできない、発行してはできない、を繰り返して自分が醗酵してしまうような状況に。

あきらめかけたそのときだった。
「日本のamazonに取得させる」を思い出して、さっきの作者お手製コードにあった

$baseurl = "http://webservices.amazon.com/onca/xml";

$baseurl = "http://webservices.amazon.co.jp/onca/xml";

と変えてみた。
できた!できたよ!と家中の人間に喜びの理由を説明して回るも、誰も理解せず。でもいい!それでいい!
しかしそれをどうやってPEARでやんのよ?
PEARのServices_Amazonの公式ドキュメントあさったよ。けっこう得意なんだ、こういう根性でやる宝探し。
https://pear.php.net/.../Services_Amazon.html#methodsetBaseUrl

公式にあるとおり、setBaseUrl();で設定しましたよ、こんな風に。

$amazon->setBaseUrl('http://webservices.amazon.co.jp/onca/xml');

できたよできた!

いやあ、何日かかったんだろ。いい勉強だったなあ。(汗をぬぐう、それはもう冷や汗じゃない)
あんたも困ってここに辿り着いたんだったらその心境聞かせてくれ!悩みなら吐き出してみれば解決するかもしれないぜ。

スマフォでFacebookの通知をやめたいのに中々できなかった件

スマフォ(Androd6)でFacebookの通知をやめたいのに中々できていなかったのだけれど、やっとできたので祝杯あげるのと同時にやり方を解説します。

Facebookアプリを入れていると、勝手にいろんなこと通知してくれます。誰がプロフィール写真変えただのなんだのと。髪型変えた自慢だかなんだか。いらねえっていう情報まであがってくるこの「通知」っていうのをどうしても止めたかったのだけれど、アプリの設定しようがなにしようが、ぜんぜん止まらなかったので毎日悩み苦しんでいました。
そしてついにはアプリをアンインストール。Facebookがまったく不必要っていうわけではなく、ときどきチェックしたり必要なときに「俺から」見たいというだけなんですが、しかたなしにアンインストールしました。ですが、通知は届くんですよ。Facebookをアンインストールしたのに??!とかなりあせりました。あせっている間も「●●●さんがチェックインしました」なんていう近況が入ってくる。チェックインしたのはおしゃれなカフェじゃないですか、こっちが必死こいて仕事でタイピングしているってときにも。

そこでFacebookの子分みたいなアプリ、Messengerを疑いました。これにも通知の機能がなんやかんやとついていたので一気にOFF。これで誰かが呼びかけてくれても、俺は完全スルーすることになるだろう、だが「通知」を斬るためにはどうしてもしかたないんだ…。忘年会シーズンですが、メッセンジャーなんかで呼びかけしないでくださいね。

しかし通知は止まなかった。

ウォーキングデッド7どころじゃない。なんでここまでしても通知の野郎はとまらねえんだ!!と今度は怒りに変わりました。
「だからクソAndroidってやつは!」と文字通り便所でクソしながら待機画面に浮かびあがる「通知」を見たときでした。「通知」の野郎に小さいアイコンがついているんですよ。よく見るとそいつは「Chrome」。ここで私は合点がいきまして、Chromeの通知を探し出し、斬ったわけです。
これ以降「通知」の野郎はきていません。撃退したわけです。
犯人は…Chromeだったんです!!

このへんiPhoneだと通知に関する管理はとてもわかりやすいのだが、Androidだとちょっと雰囲気違うんですよね。
お困りの方、たくさんおられたんじゃないですかね、私のように、きっと。で、その手順をざっくりスクリーンショットしました。ざっくりなんで参考までにどうぞ。

設定から入って、アプリ > Chrome > 通知 に入るとこんな感じになります。
001
そんで「アプリの設定」を選ぶ。
002
Facebookがいたでしょ。ぐっとそれを長押ししてください。憎しみがあればそれも一緒にこめて。
003
削除しますと一撃してください。
004
トドメをさせば完了です。

しかしなんでChromeがFacebookの通知を許可してたんだろ。。。まったく意識も記憶もない。

Jquery colorboxで、同じページで違うCSSとか違う見せ方したいとき

Jquery colorboxで、同じページで違うCSSとか違う見せ方したいときってありますよね。
あんまりないか。
他のライトボックスプラグインを入れてもいいんだけれど、挙動をそろえるのは苦労しそうだ。

なかなかいい方法が見つからなかったんだけれど、このページの回答でいいこと言ってた人がいた。
http://stackoverflow.com/questions/2318528...

かいつまんで話すと、

jquery.colorbox.js
colorbox.css
これらを複製して使う。

・複製したらファイル名も変更して読み込ます。
jquery.colorboxHoge.js とかね。

・複製2ファイルの"colorbox"と"cbox"の単語をすべて置換。
"colorboxHoge"、"cboxHoge"とかね。

・"$("#selector").colorbox();"といつもやっている隣にでも"$("#selectorHoge").colorboxHoge();"と追記すれば、OK。

という感じの作業だ。
colorboxを二つ使うんだけれど、バッティングしないように別名にして使うってことだね。

他にもスマートな方法があるかもしれないけど、分岐としてはわかりやすくていい。
他のプラグインでも使えるかもしれないので、ひとつの方法としてストックしておきます。