php
投稿者が投稿した投稿のみを編集可能にする。
0一つのWordpressで複数のユーザーが管理するサイトを作成することになりました。
すべてを編集できる管理者と各ユーザー毎にカスタム投稿を作成して自分の分の投稿のみ編集可能にしていたのですがユーザー数が増減することがあり、投稿をすべてまとめてしまおうと思って全部投稿にまとめたのですが
問題点として、自分以外の人が書いた投稿も閲覧、編集可能な状態になってしまいました。
これでは不都合です。
そういうわけで色々なサイトを参考に修正してみました。
(さらに…)
投稿IDを桁揃えしてパーマリンク可する。
0パーマリンクを作成する際に
201304170055 のように日付+投稿IDのパーマリンクにしたいとふと思いました。
そこでパーマリンクを
/%year%%monthnum%%day%%post_id%/
にしたのですが、これだと投稿IDが55のときは
2013041755
となり、投稿IDが2020の場合は
201304172020
と桁数が変わってしまいます。
気分的にどうせなら桁を揃えたいと思い55の時は201304170055のように0で揃えたいと思ったのですがなかなかいい解決方法が見つかりませんでした。
そこでWordpressフォーラムに聞いていました。
(さらに…)
【メモ】指定文字数で抜粋を表示する。
0WP Multibyte Patchプラグインを使うほどでもない、ただちょっと文字数を指定して抜粋を表示したいなーって時用メモ。
<?php echo mb_substr($post->post_excerpt, 0, 80); ?>
単にmb_substrで文字を切り出しているだけです。
NetBeansを使ってみました。
0今までWordpressを含むPHPやHTMLの作業はPHP editerとk2エディターを併用していました。
現状これで満足していたのですが、php editaerでUTF8ファイルを開くと、文字エンコードの指定が上手く行かず文字化けした状態で読まれる場合が多くわざわざ指定し直して読み直すのが面倒になってきました。
(さらに…)
CakePHPで新規作成時に二つのテーブルのidを組み合わせたい
0CakePHPを色々勉強中ですが、データを作成したときに簡単に保存できて便利なのですが、
複数のテーブルを利用しているときにつまずきました。
(さらに…)
最近見た投稿をチェックしたい。
0Wordpressで最近みた投稿をクッキーで記憶しておいてリスト表示しようと思いプラグインを作成しました。
手順としては
1.クッキーを読み込む
↓
2.読み込んだクッキーを配列に入れて、その配列の先頭にarray_unshiftで現在の投稿IDを挿入する。
↓
3.array_uniqueで重複しているIDがあった場合取り除く
↓
4.配列をシリアライズ化する。
↓
5.クッキーに保存する。
という形に持って行きたいとおもっています。
ところが、テストしているとクッキーに保存する直前までは idが 6,9 という形で二つ保存されているのですが
クッキーに保存して読み込み直していると9,6と配列の順番が逆になってしまいます。
更に調べるとクッキーに保存直前のシリアライズされた値と、クッキーに登録されているシリアライズされた値がすでに違うようです。
・・・なんでだろう?シリアライズしたのが悪いのか?,かなんかで区切って後で取り出すときに分割したほうがよかったのだろうか?
でも保存する最大数を決めずに可変にしているので、あまり数が多いと大変そう。最大数を10個くらいまでにしておいたほうがいいのだろうか。
ヒアドキュメントのうっかりミス
0PHPでヒアドキュメントで出力する機会がありました。
echo <<< _HTML_ hogehoge hogehoge _HTML_;
ところがエラーがでてしまう。何でだろう?
と10分ほど悩んだ結果、_HTML_の先に一個半角スペースがあったせいでした。
うっかりミスで時間を費やすととっても脱力しますね
TwitterAPIの罠
0TwitterAPIで、特定のhashで検索したデータのなかで、さらに特定のワードをつかっているかで振り分ける作業をしました。
まず#hogehogeでハッシュタグのデータを収集。
それのなかで【ほげほげ】というワードが含まれているのを抽出するために
if(preg_match("/ほげほげ/",$value)){ 振り分け処理; }
で、うまく抽出できない。あれ?
調べると日本語でマッチさせるために語尾にuを付ける必要があるらしい。(UTF8前提ですが)
というわけで
if(preg_match("/ほげほげ/u",$value)){ 振り分け処理; }
・・・うまくいかない???
あれーと思いここでしばらくつまりました。
苦し紛れに出力されたソースをみるとなんじゃこりゃ。対象の数字が。
TwitterAPIから渡された数字は数値文字参照で書かれてたのでした。表示は通常どおり表示されてたので全然気がつかなかった。
というわけで一文追加。
$value = html_entity_decode($value,ENT_QUOTES,"UTF-8"); if(preg_match("/ほげほげ/",$value)){ 振り分け処理; }
無事マッチさせることができました!!