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


ワードプレスを使って無料で作る 会員制ポイントサイトの作り方 第ニ回 ポイントの増減の方法

今回は「CubePoints」のポイントを直接いじって増減させる方法です。
デフォルトでは「CubePoints」のポイントが動くのは新規会員登録時、投稿時、コメント投稿時の三種類しかありません。

そこで直接いじって独自のタイミングとイベントでポイントを増減させます。
まずポイントの増減に関係するPHPファイルを特定します。
以下のプラグインフォルダの中を調べるとずらっとファイルが出てきますね。

/wp-content/plugins/cubepoints/

メインルーチンが書いてあるファイルには「core」と付いている場合があるので、「cp_core.php」を開いてみるとビンゴでした。

ここでポイントをいじるには、まずはポイントを与えるユーザーが誰かを特定する必要があります。
カレントユーザーつまり現在ログインしているユーザーを特定する関数を調べます。

「cp_currentUser()」というのがあります。
この関数は現在ログインしているユーザーのユーザーIDを戻り値として返します。

次にポイントの付与に関する関数です。

「cp_alterPoints($uid, $points)」という関数があります。
これは引数にユーザーIDと増減するポイントの2つを受け取り処理します。
データベースも更新してくれるので楽ちんですね。

最後にポイントが追加されたかどうかを調べるために現在のポイントを表示する関数を調べます。

「cp_getPoints($uid)」という関数がありました。

この3つの関数を使うことで基本的にはポイントが操作できます。
では、実際に実験してみましょう。

ワードプレスに影響を及ぼさないようにダミーのサンプルページを作ります。
さらにダミーのユーザーを新規に追加しておいて下さい。
ユーザーの追加は管理画面より左サイドメニューの [ ] → [ 新規追加 ] で可能です。
「CubePoints」の管理画面で見ると新規追加されたユーザーはポイントが0であることが確認できます。

実験するサンプルページですが、ワードプレス関連の関数を使うためにちょっとしたワザを使います。
ワードプレスの便利な関数はブログテンプレートなどからしか通常は使えません。
しかし、ブログを使わずにブログの内容を呼び出したい時もありますよね。
そんな時は、テンプレート外部から呼び出すためにワードプレスで必要なファイルを自動的に読み込みます。
これでワードプレスの関数が使えるようになります。

まずはこの環境を作りましょう。

例として以下のようにサンプルページをアップロードするフォルダを作ったとします。
問題はみなさんがお使いのサーバーはそれぞれ環境が異なることです。そのためサーバーのパスも変わります。

/wp-content/lesson/cp/

とりあえずどこでもいいのでフォルダを作ってみましょう。思いつかなければ私と同じように作ります。
次に以下の内容でファイルを作り「sample1.php」として「UTF-8」形式で保存します。

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>このファイルのサーバーパスを調べる</title>
</head>
<body>

このファイルのサーバーパスを調べる<br />
<?php echo dirname(__FILE__); ?>

</body>
</html>

以下のコードが一行だけありますが、これはこのファイルがサーバーのどこにあるかを表示します。

<?php echo dirname(__FILE__); ?>

では、ブラウザを開いて「sample1.php」にアクセスしてみましょう。
もちろんURLが異なるのでみなさんの環境に合わせてください。
私の場合はURLがこうなります。

▼sample1.php

このファイルにアクセスすると以下のように表示されます。

/home/users/0/main.jp-x-design-office/web/mhs/wp-content/lesson/cp

これがサーバー上の実際のパスになります。長いですね。もしかして短い人もいるかもしれませんが。
私の場合はワードプレスをインストールしているフォルダが「/home/users/0/main.jp-x-design-office/web/mhs/」となります。

これがワードプレスがインストールされているサーバーのパスなので覚えておいて下さい。
次にワードプレスのバージョンを表示する関数を使ってみます。
この関数はワードプレス独自の関数なので、ワードプレス関連のファイルが読み込まれていないと使うことが出来ません。逆にワードプレス独自の関数が使えればOkということです。

ワードプレス関連のファイルを読み込むには「wp-blog-header.php」というファイルを読み込みます。
このファイルがある場所はワードプレスがインストールされているフォルダ直下にあるはずです。

読み込むには以下のコードを使います。

<?php
	define( 'WP_USE_THEMES' , false );
	require( 'wp-blog-header.php' );
?>

ただしこのままでは動きません。エラーが出ます。なぜかというとパスが通っていないからです。
「wp-blog-header.php」はワードプレスがインストールされているフォルダ直下にあるので、さきほど調べたサーバーパスを追加します。

/home/users/0/main.jp-x-design-office/web/mhs/

すると私の場合はこうなります。

<?php 
	define( 'WP_USE_THEMES' , false );
	require( '/home/users/0/main.jp-x-design-office/web/mhs/wp-blog-header.php' );
?>

これでサーバーからの絶対パスが通りましたね。パスが間違っていなければワードプレス関連の関数が使えるようになっています。

以下のコードをファイル名「sample2.php」として「UTF-8」形式で保存します。

関連記事