この記事はブロックされています。続きを読みたい方はログインをして下さい。会員ではない方は新規会員登録をして下さい。


ワードプレスを使って無料で作る 会員制ポイントサイトの作り方 第六回 ページごとにポイントのレートを変える方法

最終回です。今回はページごとにポイントレートを変える方法です。
使うのはカスタムフィールドです。カスタムフィールドは記事の投稿時に設定できます。

▼ワードプレス×ツイッターによる無料でできるオートブログ 第五回目 カスタムフィールドの利用

ワードプレス×ツイッターによる無料でできるオートブログ 第五回目 カスタムフィールドの利用

試しにやってみましょう。
カスタムフィールドの値に「point_rate」というキーを設定し、値を「-2」にします。
記事にブロックを掛けて投稿を更新します。

ブロック記事設定を有効
ブロック記事設定を有効
カスタムフィールドを新規追加
カスタムフィールドを新規追加
カスタムフィールドに値を設定
カスタムフィールドに値を設定

これでカスタムフィールドが埋め込めました。簡単ですね。
では次にこの値を読み出す方法です。これは「get_post_meta」という関数が用意されているので簡単です。

[note]$point_rate = get_post_meta( $post->ID, ‘point_rate’, true );[/note]

という書き方で取り出せます。
第二引数を設定したカスタムフィールド名に変えるだけでOKです。
第一引数の「$post->ID」は記事IDを指定いるので、ここに手動で記事IDを指定すれば、任意の記事のカスタムフィールドを取得できる仕組みです。
ただしテンプレート外なので「global」を付けてグローバル変数として呼び出す必要があります。

あと、問題点があります。プラグインの「WP-Members」のフィルターはサイドバーのウィジェットや他のプラグイン(YAPRPPなど)でも呼び出されます。すると繰り返し何度も呼ばれるのでクッキーで判断しようにも上書きされてしまうという問題点があります。
これにはかなりハマってしまいました。

そこでクッキーには一意の変わらないURLをキーとして、値をカウントすることにします。
こうすることで複数のページの閲覧履歴を管理できるので、二重カウント防止がより正確になります。

以上を踏まえて前回のコードを改作してみます。

関連記事