Smart Custom Fieldsでよくある都道府県のプルダウン項目を作る(コピペ用)
Smart Custom Fieldsプラグインで、フィールドを管理画面からでなくコードベースで定義している方向けに。
都道府県のプルダウン作るの面倒ですよね?
作っておいたのでコピペで使ってください。
マイペースクリエイターとクリエイターはWordPressとWordくらいちがいます。WordPressを中心としたWeb系の覚え書き。
Smart Custom Fieldsプラグインで、フィールドを管理画面からでなくコードベースで定義している方向けに。
都道府県のプルダウン作るの面倒ですよね?
作っておいたのでコピペで使ってください。
2ヶ月くらい前に『WordPress4.1以降でカスタムフィールドを使い、投稿ごとにタイトルタグを自由に編集する方法(フィルターフック使用)」という記事を書いて、さらにこれをプラグイン化したものもリリースしたんですが、つい今週WordPress4.4がリリースされたら、あっさりフックが変わってしまったので、早速修正することになりました。
4年前の2011年5月に『初心者でもプラグインを使わずにtitle,meta keyword,descriptionを投稿ごとに変える[WordPress使えそうなスニペットシリーズ]』という記事を書き、昨2014年10月にコードを見なおして記事を改訂しました。
しかし、2015年1月にリリースされたWordPress4.1からは、タイトルタグはheader.phpではなくfunctions.phpで定義して出力する方法が推奨と変わりました。
そこで、カスタムフィールドを使って投稿ごとにtitle要素を任意の文字列に変更するためのコードを書きなおしてみました。
»続きを読む
特定の人に聞かれたり、教えたりしたことを書いとくシリーズです。ネタ的には多分既出です。
カスタム投稿タイプを使って企業サイトなどを制作する場合、
投稿部分はブログやお知らせなどで使っていて、パーマリンク設定を「数字ベース」にしていたり、
カスタム構造で自作の設定にしていたりして、頭にひとつ階層が挟まるようにしているケースの話です。
たとえばこんな状態ですね。
この時、カスタム投稿タイプ(例「よくある質問(faq)」を作ると、URLが
とかいう形になってしまい、ちょっと困る。
かといって /%post_id% とか /%postname%/ だけにしてしまうと
という感じで、ドメイン直下に投稿IDやタイトル(スラッグ)がくるURLになってしまい、なんかイケてない。
アクセス解析の時に、同一ジャンルのコンテンツで束ねた確認がしづらい。
»続きを読む
古くて今は使えない記事が検索上位に出ているのをなんとかしたいシリーズ第2弾です。
Googleで「WordPress アメブロ RSS」と検索した時、上位に表示される記事の多くが、今のバージョンではもう存在しないrss.phpをincludeしていたり、既に非推奨になっているfetch_rss関数を使ったものを紹介しています。
そして、その記事を見て実際にやってみたけど上手くいかないということで取引先様より、コード改善の仕事が回ってきたのがこの記事を書くきっかけです。
前回、新着記事表示の件で長々と考えを書きましたが、「ああ、こっちもなんとかしなければ」という変な使命感に駆られました。
実はRSS取得については以前、「WordPressでRSSフィードを取得するwp_rssやfetch_rssが非推奨だった件」という記事でfetch_feedを使う方法を紹介しました。
「初心者さんはわかりやすい個人のブログ記事だけから情報を探すことに終始しがちだけど、やっぱCodexの中に答えがあったりすることも多いからちゃんと読んだらいいんじゃね」ということを書いたのですが、やはりそうは言ってもCodexよりも個人ブログの方を参考にしたい人の気持ちもすごくよく分かります。
そこで、今回は検索されやすいキーワード、「アメブロ」「アメーバブログ」に特化して、PR記事を除外しつつ新着記事を任意の件数取得する方法を考えてみました。
»続きを読む
※2018.03.01追記:4年半経ちましたが、今のところはおおむねこの記事のままで大丈夫と思ってます。定期的にチェックするのは大事。
今年に入ってから、「クエリ変更はquery_postsかpre_get_postsか」という話題がWordPress中級者以上の間では盛り上がっていましたが、初心者コピペWordPressユーザーの多くの方には「お前ら何を言っているんだ」ということでしょう。
実際、WordPress日本語フォーラムに投稿される質問の中でも、必要ないところでquery_postsを使って表示がおかしなことになっているケースがあとを絶ちません。
なぜ同じようなトラブルが減らないのかといえば、Googleで「WordPress 新着記事」「WordPress 新着情報」などのワードで検索した時、上位に表示されている記事が結構古いものが多いのにもかかわらず、新しいユーザーさんがそのコードをコピペしてしまうことが原因だと考えています。
さらにその古い記事を見てカスタマイズをした初心者さんが、「この方法でできました!」と、元記事へのリンクを添えて古いままのコードを紹介するため、元記事の影響力はどんどん強くなっていきます。
誤解しないでいただきたいのは、決して元ネタとなった記事を批判しているわけではありません。
むしろ2年も3年も4年も前に書いた記事が今でも愛されているというのは尊敬に値しますし、ブロガー冥利に尽きることだと思います。
さらに、それを参考にした初心者さんをDisってるわけでもありません。
自分も、最近は1本の記事を書くのにかなり精査してからじゃないと書けなくなりましたが、このブログを始めた当初の記事は先輩ブロガーさんの記事をコピペして試したみた記事がほとんどでした。
今でもよそのブログから拾ってきたコードにお世話になることは多いので、コピベが必ずしも悪いことではないです。
しかしながら私が言いたいのは、時は移りゆくということです。
とくにこのWeb業界というのは吉野川やナイアガラの滝のような激流であり、昨日まで正しかったことが今日はもう間違いだったりすることもあるわけです。
実際私が過去に書いた記事も、もう使えないものが結構あります。(でも直してなかったりしててごめんなさいごめんなさい)
ということで、前置きがとっても長くなりましたが、主題の通り「2013年7月現在、WordPressのトップページに、新着情報何件を表示させる」ためコピペするコードとして、一番トラブルが少なそうなのはこんな感じかなー、というのをサンプルとして挙げておきます。
WordPressでいくつかの項目をもとに記事を絞り込み検索をしたいという案件の相談があり、実装方法をいろいろと調べた時の自分用メモです。
絞り込み検索ができるプラグインとしては、『WP Custom Fields Search』というプラグインが非常に有名で、某有名ブログをはじめとして多くのブログで紹介されています。
しかしこのプラグイン、更新が2009-8-19というはるか昔に止まっておりまして、現行の3.5.1、デバッグモードtrueの環境下で動かしたところ既に非推奨の関数が使われているなど多くのお叱りのメッセージが表示されました。
デバッグモードではない通常の環境下では一応まだ動くようなのですが、自分のブログならまだしも、仕事として携わるものにそんな末恐ろしいプラグインは入れられないわ!!
ということで、このプラグインを使わない方法を試してみました。
(※2013.06.06補足 なんと4年ぶりにこのプラグインが更新されましたが、説明を読むと、サポートができないのでこのプラグインのリリースは今回最後になるだろうという旨のことが書いてありました。
やはり無償プラグインは当たり前に存在するものではないということを肝に銘じておかないといけませんね。続けてほしいプラグインにはぜひ寄付や支援をしましょう。詳しくはこちらも記事もぜひ。)
コーポレートサイトでよくありがちなのが、新着情報タイトルをトップページに表示させるってやつで、
言わずもがなget_postsでちょちょいとやるわけなんですが、こういう感じのサイトもよくあるよね。
↓
冒頭のアイコンっぽい部分は投稿タグを出力。CSSでそれっぽくスタイリング。
タグごとに色分けしたいから、それぞれのタグをあたりで囲んで、タグごとにユニークなclassを付ける、というのがやりたいこと。
Twitterでみうさんがこんなことをつぶやいていたのを偶然発見。
文字入力エリア以外にカーソルがあるときにBackSpaceキーを押すと、ブラウザの「戻る」ボタンと同じことになっちゃうんですよね。
それで、せっかく入力した記事が消えてしまうとか…..(´;ω;`)ブワッ
一応、BackSpaceが押されるとこんなダイアログが出るはずなんですが、
クライアントさんにはきっとなんのことやらわかりませんよね。
そこで、管理画面にだけJavaScriptを適用して、BackSpaceを押しても「戻る」にならないようにしてみました。
WordPressを始めたばかりの頃って、各ページの「ページタイトル部分」ってテキストでしか動的に出力できないと思っていました。
ページタイトルを画像にしたい時には、テンプレートに直書きして、ページの数だけテンプレートファイルを用意しないといけないとか…。
でも、慣れてくるといろいろ気づくもんですね。スラッグ名を出力すれば出来るんじゃないかと思って調べたらやっぱり出来ました。