Wordpress全てのページで共通のHTMLコードを呼び出す

Wordpressで企業ホームページを作成する機会が増えてきています。

主に「ページ」機能を使って静的ページを作成することになるとおもうのですが、しばしば複数のページの中に同じ情報をブロック単位で埋め込む必要が出てきたりします。

そこで、同じコードはページの中に何回も書くのではなくてブロック単位で切り離して表示したいなぁ~という要望が出てきました。

CakePHPを知っている人でしたらViewにおけるElementのような使い方をしたいというわけです。

もちろん、Widgetを使えるのであればテキスト ウィジェットにHTMLコードを書いてしまえばそれでおしまい、という話なのですが、企業ホームページといった場合には「ブログ」機能を殺さずに自由度の高いな静的コンテンツを必要とするため、ウィジェットが「ページ」には使えなかったりします。

ここで、調べてみたところ、YouTubeコードやFlashコードを埋め込むというプラグインはあるのですが、HTMLコードを切り離して埋め込むといったのがなかなかみつかりませんでした。

そこでようやく見つけたのが、WordpressのCustom Fieldsを使ったHTMLコード共通化の方法です。

Custom Fieldにあまりなじみのない人も多いと思うのですが(実は自分もその一人・・・)、「Get Custom Feild Values」というプラグインと合わせることで全ページに同じHTMLコードを埋め込むといったことが可能になります。

手順としては、

まず、

  1. 「Get Custom Feild Values」プラグインをインストールします
  2. すでに存在する任意のページにいって、カスタムフィールドを1つ作ります。 たとえばIDが”rightmenu”、ValueがHTMLコードといった具合です。
  3. 共通して使っているデザインテンプレートを開き、表示させたい箇所に<?php echo c2c_get_recent_custom('rightmenu'); ?>のように書きます。

以上です。 任意のページに作った1つのカスタムフィールドが全てに反映されるというのは、なんともおかしな実装ですが、割り切って使えばなかなか便利かもしれません。

以下、参考になったサイト:

全てのページで共通のカスタムフィールドを呼び出す

引用元: WordPressプラグイン「Get Custom Field Values」でheadタグ内にCSS・JavaScriptを読み込む | HiGash.Net.


CakePHPで携帯サイト構築(Ktai Library)の場合のGPLライセンスについて

以下のサイトでCakePHPで携帯サイト構築をするためのヘルパー・コンポーネントを公開されています。 ありがたく、今度試させてもらおうと思います。

携帯サイトを構築する場合の、各キャリア対応をサポートするライブラリと、それをCakePHPで利用するためのヘルパー・コンポーネントを公開いたします。ライブラリ本体はCakePHPだけでなく他の環境でも使用することが出来ます。

引用元: ECWorks Blog | Ktai Library for CakePHP1.2.

なお、ライセンス形態はGPLライセンスのようです。

GPLライセンスといえば「コピーレフト」。「コピーレフト」といえばGPLライセンス、と切っても切れない関係で、その「コピーレフト」の感染力がしばしば話題になりますが、

ここで、疑問。

ヘルパー・コンポーネントとしてGPLライセンスを使った場合、自分の成果物もGPLライセンスにしなければいけないのか?

想定されるライセンス形態は以下のような感じです。

  • MITのCakePHP
  • 自分の成果物(Appフォルダの中)
  • GPLライセンスのKtai Library/ヘルパー・コンポーネント

 

いろいろ調べた結果、自分のなかでは「自分の成果物もGPLライセンスにしなければいけない」のではないか、という考えです。 ただ間違っている可能性大です。

理由としては以下のとおりです。

CakePHPではないですが、
以下にWordPressのテーマはすべてGPLライセンスにしなければならないか?といった内容の記事があります。GPL の専門のソフトウェア・フリーダム・ロー・センターの回答ということで、大変興味深い内容になっています。その中で、

CSS ファイルや “default” テーマの画像ディレクトリに含まれるものは、WordPress コードとは分離しているといえるでしょう。一方、WordPress のコードと混じり合い、影響を受ける PHP や HTML コードは、WordPress の派生物といえます。

[中略]

結論として、提示された WordPress テーマは WordPress の著作権の元にあるコードの派生物を含んでいます。それぞれ独自の作品である画像、CSS、PHP ファイルをまとめたこれらのテーマは、全体的を GPL ライセンスにする必要はありません。むしろ、PHP ファイルは GPL ライセンスの要件に制約されるが、画像や CSS はそうではないと言えます。サードパーティのテーマ開発者は、希望するなら制限付きの著作権を適用することができます。

最後に、WordPress の著作権に制限されない合法な WordPress テーマを作成することも可能ということを言っておきます。しかしそのようなテーマはこのソフトを有益なものにしている WordPress 関数をまったく使わないものである必要があります。

引用元:http://www.my-standard.co.jp/932.html

と結んでいます。

WordpressのWordPress関数はGPLなのでそのコードを呼び出したり、混じり合い、影響を受けるPHPはWordpressの派生物である(画像、CSSは混じり合ってないのでそうでない)

ということらしいです。すると、

Ktai Libraryはコンポーネントなので、自分のコードから読出したり、影響を受けたりするわけだから、「コピーレフト」の影響をうける。よって、自分の成果物もGPLライセンスにしなければならない。

であろう、という考えにいたりました。

間違っていたら是非指摘して下さい。


すでにあるPHPのサイトからSSOでWordpressにもログインさせる方法

自分の会員制のサイトで利用者にブログを提供できるオプショナルサービスを考えていてSSO(Single Sign On)をどうしたものかと思い調べてみました。

すでにあるPHPのサイトからSSOでWordpressにもログインさせる方法として、以下のサイトのコードが流用できそうなのでブックマーク。。。

In my setup, the main site has role-based permissions and the WordPress setup only has one account for each role (i.e. admin, editor, user etc…). The plugin first checks the role of the user logged in to the main site and then simulates a WordPress login anytime the user navigates to the blog. You should be able to customize this method for your own needs.

引用元: WordPress Auto-Login | Leon's Weblog.

まぁ~、うちのサイトではまだまだ対応はあとになるだろうけど・・・


CakePHPでWordpressにアクセス

If you’re like me, you’ve fallen in love with CakePHP. It’s a tight bit of code that’s easy to use and once you have your application using it, easy to maintain and add new features. For my recent redesign of my freelance site www.systemsevendesigns.com I wanted to be able to display my 3 most recent blog posts on the homepage. Both sites run off of different databases, so how do we do it with Cake? (This post assumes you know a little bit about Cake, but is not too terribly complex. Cake newbies welcome!)

引用元: WebDevKungfu » Blog Archive » Accessing WordPress with CakePHP | Web Development, Web Design, Coldfusion, Rails, Ruby on Rails, PHP blog.

仕事の合間に、ふと思いたってググッてみた。

やっぱみんな考えることは同じだなぁ~。

ちょっと前にWordpressで動くフリーマケットとか購入したし、これからどんどんインテグレートしていこう。

最近、CakePHP用の掲示板をPluginとして取り入れたばかりだけど、ちゃちゃっと別システムを取り入れれるCakePHPの柔軟性がステキすぎです。(といってもCakePHPのACL周りで結構書き換えに工夫が必要だったけど)

ってことで、今回も自分用メモ。。。 あしからず。


Wordpress の便利なツール ~ 投稿ブックマークレット ~

閲覧中のページへのリンクを貼ったブログの投稿ページを呼び出したり

引用元: Wordpress の便利なツール ~ 投稿ブックマークレット ~.

「Tumblr」の「Share on Tubmlr」ボタンように気に入った記事を引用して簡単に自分の記事を書くことが出来ないかなぁ~とおもってたどり着いた。

ちなみに、引用したい部分を選択してから、「Press This」のボタンを押すだけで簡単に引用して記事がかけます。

Version2.6からすでにデフォルトでバンドルされていたんですね。 自分も知らなかった。

こういった機能といい、TwitterのRetweetといい、「使いやすい」「簡単」ってのがインターネットをドンドン進化させていってますね。

ちなみに、Lotus ConnectionsのDogEarもこうやって簡単にソーシャルブックマークする機能があったな。。。