記事へのリンクを考える
単純に考えれば、メニューアイテムが、それぞれ記事へリンクしているのですから、それを真似すれば、良いだろうと気づくと思います。
実際に、メニューアイテムをリンクをコピーして、リンクとすれば良いはすです。
以下は、メニューアイテムの設定画面です。その中のリンクをコピー&ペーストすれば良いのです。

index.php?option=com_content&view=article&id=49
実際に、「Joomla! でソースコードをハイライト表示するには」へのリンクを作成してみました。
このリンクをクリックしてみると、きれいに表示されると思います。
では、メニューにないものはどうでしょうか?
「メニューにないものを表示したくなるのか?」という疑問はありますが、
リンクするにはどうすれば良いでしょうか。
答えは、先のSTEP.1のリンクと同じです。
index.php?option=com_content&view=article&id=49
つまり、記事のIDさえわかれば、リンクを作成することは簡単にできることがわかったと思います。
通常のウェブサイトのように”/”で区切られたアドレスを使いたいとき、まずは、SEOの設定が必要となります。
(SEOの設定の詳細は、こちらの記事を参照してください)
SEO設定を終えたら、メニューアイテムのエイリアスが使えるようになります。
エイリアスの設定は、STEP.1と同様メニューアイテムの設定画面で行えます。

例えば、先の「Joomla! でソースコードをハイライト表示するには」へのリンクを作成してみました。
-
メニューの階層に沿って Joomla! - 設定 - Joomla! でソースコードをハイライト表示するには へと続きます。
これをエイリアスでたどると、joomla - setting - hilight となります。
このサイトでは、いろいろなエクステンションを使っていますが、そのエクステンションで、リンクを自動で作成する場合、
必ずしも同じリンクアドレスとならないことがわかっています。
これは、Joomla!を少し利用された方は、すでにご存知のことと思います。
例えば、このサイトでは、Joom!Fishという多言語(このサイトでは、日本語と英語(翻訳はしていないが・・・)が使えるようにしてある)のエクステンションがインストールされています。
この場合、URLには、必ず以下のように国語のアドレスが付加されて表現されます。
-
日本語ではhttp://wwww.off-soft.net/jp/xxxxx
英 語ではhttp://wwww.off-soft.net/en/xxxxx
-
日本語ではhttp://wwww.off-soft.net/jp/joom/extensions/hilight.html
英 語ではhttp://wwww.off-soft.net/en/joom/extensions/hilight.html
さて、見ている人が、日本語でみているか英語でみているかを意識せずに記事にリンクをはるには?を考えてみましょう。
例えば、1つの記事から、見ている人が、日本語でみているか英語でみているかを意識することなく1つのアドレスを設定できるのでしょうか?
テンプレートを変更したときに、日本語でみているか英語でみているか意識することもできますが、これが10ヶ国語となったときに、その分岐処理を書くのでしょうか・・・・。
Joom!Fishには、その一つの答えがあると思います。以下の例で考えてみましょう。
例えば、/joom/extensions/hilight.html でリンクしていれば、Joom!Fishでは、
その人が日本語でみていれば、日本語のページを、英語でみていれば英語のページを表示してくれます。
実際に、サイトのページ右上の国旗を切り替えて、STEP.3のリンクをクリックしてみればわかってもらえると思います。よくできていると思います。
ただ、よくみれば、各メニューアイテムのリンク先やサイトマップは、そうなっていません。必ず、日本語であれば、先にjpが、英語であれば、enが入っています。
これをやるには、どのようにリンク張ればよいのでしょうか?
このようにリンク先が設定されるようにするには、どのようにすれば良いでしょうか?
この答えもメニューにあります。各メニューアイテムが設定しているアドレスと同じように設定すれば良いのです。
つまり、メニューアイテムへのリンクを設定すれば、先の記述と同じように、Joomla!は、自動的にリンク先にjp/enを挿入してくれるはずなのです。
「Joomla! でソースコードをハイライト表示するには(1)」へのリンクを作成してみました。
メニューアイテムIDは、97 なので、以下のようにリンクを設定すれば、良いはずです。確かに、上記のリンク先は、Joomla!は、自動的にjp/enを挿入しています。
index.php?Itemid=97
1 | <?php echo get_permalink(97); ?>"><?php echo apply_filters( 'the_title', get_post($id = 97)->post_title );?> |
※ メニューアイテムIDへのリンクとなります。この記事の最初に説明した記事へのリンクでないことに注意してください。
どんなウェブサイトを運営するにもメニューは大事ですが、Joomla!では、特にメニューを機軸に展開していけば、SEOの対策をうまくいきそう・・・な気がします。

