wordpressでimg要素に勝手につけられたsizes属性、width属性、height属性を削除する方法

表題の件、ググると、
add_filterを使った方法(↓)や、

wp_calculate_image_srcsetを使った方法(↓)などが

でてくるのだけど、
ちょっと強引だけど、こんな方法もあるよ、というご紹介。

以下のコードをテーマのfunctions.phpに追加してやればよい。

function custum_theme_content_replacement($the_content) {
        $return = $the_content;
        $return = preg_replace(
            array("/(sizes|width|height)=\"((?:\\\.|[^\"\\\])*)\"/i")
            ,array(" ")
            ,$return
        );
        return $return;
}
add_filter('the_content','custum_theme_content_replacement');

まぁ見てもらえばわかるけど、コードの内容をかいつまんで説明すると、コンテンツを表示するときにsizes属性、width属性、height属性を正規表現を使ってまるっと置換して削除しちまえ、ってことをしている。

かなり強引なやり方だけどね。
選択肢の一つにしてもらえれば。

WordPressカスタム投稿プラグイン「Toolset Types」がプラグインディレクトリから消えている

カスタム投稿用プラグイン「Toolset Types」がWordpressのプラグインディレクトリ(プラグインリポジトリ)から消えているようです(2016年11月7日現在)。どうやら技術的な問題と規約上の問題があるらしく、技術的な問題は解決したものの規約上の問題が依然残っているとのことです。開発元もWordpressリポジトリへの復帰を望むべく、鋭意努力はしているが、べつの方法での配布も検討しているとのことです。「Toolset Types」をご利用の方は公式ページ(英語)をチェックされることをお勧めいたします。

Toolset Types 公式:
https://wp-types.com/blog/

投稿日:
カテゴリー: WordPress

[wordpress]page-[固定ページスラグ名].phpで固定ページが表示されない

えっとね、これはwordpressサイトを作っていて俺がハマったケース何だけど、カスタム投稿タイプを固定ページに一覧で表示しよう、なんて考えてない?

んで、カスタム投稿タイプのスラグ名と同じスラグ名の固定ページを作って、そこに↓なサイトからパクってきたコード張りつけて、カスタム投稿タイプの一覧を表示しよう、なんて考えてやがるだろ?

カスタム投稿タイプの一覧ページの作成
http://www.webdesignleaves.com/wp/wordpress/965/

えっとね、まず、wordpressについて知っておかなきゃいけない知識があります。

http://[サイト名]/[固定ページスラグ名]/

と打つと、[固定ページスラグ名]という名前が付いた固定ページが表示されるよね?
これはしってるはずだ。

だからpage-[固定ページスラグ名].phpというファイルを作成しているはず。

じつは、wordpressではこのURLにはもう一つ意味があるのですよ。
それは、[固定ページスラグ名]という同名のアーカイブが有った場合そっちを優先してを呼び出しに行く、というものなの。

そこで問題があって、
wordpressではカスタム投稿タイプというのは「アーカイブ」の一種なんです。
しってた?おれはしらんかたっよ!!
つまり、

http://[サイト名]/[カスタム投稿スラグ名]/

と打つと、カスタム投稿タイプが設定されていた場合、archive-[カスタム投稿スラグ名].phpファイルが呼び出されるのです。

(なければarchive.php→index.phpの順番)

ここでもう一つ、重要なポイントが。
いま[カスタム投稿スラグ名]=[固定ページスラグ名]としてしまった場合、

http://[サイト名]/[スラグ名]/

と打った場合、wordpressはアーカーブであるarchive-[カスタム投稿スラグ名].phpファイルを読みにいってしまうのですよ。
固定ページよりもアーカイブのほうが優先順位が高いの。
つまり、いくらpage-[固定ページスラグ名].phpというファイルを用意していてもまったく読まれない。表示されない。

試しに、固定ページのスラグ名をチョコっと変えてやってみ?
ちゃんとpage-[固定ページスラグ名].phpが表示されるから。

こういうケースだと[カスタム投稿スラグ名]=[固定ページスラグ名]にしてしまいがちだから注意しないとね。

ロリポップのCRON設定でシェルファイルを使ったとき「/bin/sh^M: bad interpreter: No such file or directory」というエラーが出る。

ロリポップのCRON設定でシェルスクリプトを使う場合、以下の様なエラーメッセージが出てハマった。

/bin/sh: /home/users/2/アカウント名/web/my_cron.sh: /bin/sh^M: bad interpreter: No such file or directory

そもそも原因はロリポップじゃなくて、オレ・・・・

結論から言うと「シェルファイルの文字コードをUTF-8、改行コードをLFのみ」に変更するとなおる。

Windows標準の「メモ帳」とか使ってちゃだめなんだぜぇ~

ん~~~UNIX?なにそれうまいの?

WordPressなどのCMS導入をして失敗する3つのパターン

その1:CMSを入れたら「安い」と思い込んでいる

CMSを導入したことによる運用コストを全く計算していないことを良く見かける。正直、CMSを導入した場合、運用コストが高くつくケースが多い。なぜなら、やりたいことをやろうとすると“システム修正費用(もしくは調整費用)”が思いのほか高くつく。プラグインなどの代替え手段もあることにはあるが、自身の要望にぴったり合ったものなどほとんど無いと思っていい。また、自分にぴったりプラグインなどを探して、修正して、セッティングして、運用までもって行ってくれるような、いわゆる“CMSのプロ”なる技術者は、そこらへんの格安WEB制作屋とは単価が違う。当然高くつく。じゃぁ、システム本体に手を入れようと考えると、前述と同様高くつく。結局高くつく。安価なWEB屋に頼んでもいいのだけど、安かろう悪かろうで失敗は目に見えている。アナタがよっぽどしっかりしていれば話は別だけど。

でもね、“CMSは安い”は間違っていない。じゃあ何が安いのか?安いのは“高機能なWEBサイトを構築する費用が安い”のだ。従来では考えられないような高機能なWEBサイトを構築する際のイニシャルコストを圧倒的に下げ、キックオフ期間を大幅に短縮することができる。そしてランニングコストについて言えば“ある程度知識をもっているWEBマスター”にとってCMSは圧倒的な効果を発揮する。つまり、CMSはIT素人やWEBマスター初心者には絶対に微笑みかけてくれない。

その2:CMSを入れたら「簡単だ」と思い込んでいる

正直、PC操作もおぼつかないようなITリテラシの無い方々にとって、CMSを操作することはかな~~~~りハードルが高い。良い例がある。MS-OfficeのWord。あれ簡単だと思う?見た目は簡単なように見えるけど、ちゃんとした体裁の“文書”を作ろうと思えばかなり難しい。正直なところでもWordで書くよりもHTMLで書いちゃったほうが何倍も簡単だ。それと一緒。

でも、CMSが簡単なのは事実。じゃあ何が簡単なのか?簡単なのは“高機能なWEBサイトを構築するのが簡単”なのだ。プログラムの知識が豊富でなくても、「ちょっと読める」程度で簡単に高機能なWEBサイトを構築することができる。さらにWEBサイト運用ついて言えば「複雑な事を効率的に行う」ことも得意。それは複雑な事を“ちゃんと理解した上で”おこなう場合に限る。前項同様、CMSはIT素人やWEBマスター初心者には絶対に微笑みかけてくれない。

その3:CMSを入れたら「なんでもできる」と思い込んでいる

とりあえず、救いようが無い。

CMSが得意なのは“決められた行動を効率的にこなす”ことだ。自分の思い通りになるのは“決められた範囲”の中に限る。この“決められた範囲”を一歩でも超えたらCMSは容赦なくアナタにコストと期間を要求してくる。ただし、この“決められた範囲”ってのが非常に複雑になっていて、エンジニアによって“決められた範囲”が変わってくるのも困ったものなんだけどね。ただし、言えることは、“決められた範囲”が広く、アナタの要望を寸分違わず理解して、具体化してくれるエンジニアは値段が高い。間違いなく。

LightBoxライクの画像ギャラリー「piroBox」をWordPressに実装してみた

う~ん

すご~く簡単。

しかもスライドショーとかできちゃって結構イイ感じ。

まず一式をここからダウンロード

以下のファイルを読み込んで(サーバにUPして)、

  • pirobox.min.js
  • style.css(※内部に記載されている画像パスに注意)
  • 画像一式
  • (ひつようであればjQuery本体)
<script type="text/javascript">
$(document).ready(function() {
	$().piroBox({
		my_speed: 400,
		bg_alpha: 0.1,
		slideShow : true,
		slideSpeed : 4,
		close_all : '.piro_close,.piro_overlay'
	});
});
</script>

と書いて(ここらへんのパラメータは本家サイトのドキュメントを適当にみてくれ)、

<a href="images/1.jpg" class="pirobox_gall" title="Spain 2009">
<img src="images/1s.jpg" />
</a>

とimgタグをクラス指定したaタグで囲むだけ。

簡単簡単。

でも

jQueryの1.4.4で動かなかったから注意。

なぜかpiroBoxについてる1.4.2では動くんだよね。

ちなみに俺はwordpressに別途jQuery Ver1.6を読み込ませて使いました。

1.6でも問題なく動いてる(ここで)。