「WordPress」の版間の差分
Gnusocialjp (トーク | 投稿記録) (Sell) |
Gnusocialjp (トーク | 投稿記録) (Course) |
||
247行目: | 247行目: | ||
* [https://www.paidmembershipspro.com/add-ons/pmpro-purchase-access-to-a-single-page/ Addon Packages Add On Plugin for PMPro] | * [https://www.paidmembershipspro.com/add-ons/pmpro-purchase-access-to-a-single-page/ Addon Packages Add On Plugin for PMPro] | ||
* [https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/ WooCommerce Integration Add On Plugin] | * [https://www.paidmembershipspro.com/add-ons/pmpro-woocommerce/ WooCommerce Integration Add On Plugin] | ||
単品販売の方法。有料アドオン、LearnDash、後はWooCommerce連携など。 | 単品販売の方法。有料アドオン、LearnDash、後はWooCommerce連携など。 | ||
PMProのAddon Packagesは、まずあるメンバーシップレベルのユーザーに購入権利を与えて、そこから購入する形。 | |||
あくまで単品販売で、定期販売はできない。記事別に金額の入力欄が表示されてそれで単品販売する形。悪くない。こちらの理想に近い。単品販売することにした記事は買うしかない。あるメンバーレベルなら買わなくても見れるというようにはできなさそう。いや。1レベルだけ全アクセス可能はできる。 | |||
ただ、Plus会員限定の有料アドオン。それだけが残念。 | |||
いや、有料アドオンだが、別に無料で使える模様 ([https://www.paidmembershipspro.com/free/ PMPro: Free WordPress Membership Plugin])。サポートを販売している扱いの模様。 | |||
=== Course === | |||
*[https://wordpress.org/plugins/paid-memberships-pro-for-wp-courseware/ Paid Memberships Pro Addon for WP Courseware – WordPress plugin | WordPress.org] | |||
*[https://www.paidmembershipspro.com/add-ons/pmpro-courses-lms-integration/ Courses for Membership Add On Plugin] | |||
*[https://www.paidmembershipspro.com/add-ons/learndash-integration/ LearnDash Add On Plugin for Paid Memberships Pro] | |||
LearnCashはちょっといまいち。外部のプラグインとの連携。この機能自体はPMProのあるレベルが、LernDashのあるコースにアクセス可能にするだけだから、あまり意味ない。PMProだけでも似たようなことはできる。 |
2024年2月25日 (日) 20:39時点における版
About
WordPressは世界の多くのウェブサイトで使用されているCMSだ。PHPで記述されている。
WordPressの外観や挙動はPHPのプログラムを書いてカスタマイズできる。また、プラグイン機構を持ち、世界中の開発者によるプラグインを導入することで簡単にウェブサイトを拡張できる。
Install
WordPress.comなどのホスティングサービスを使用することもできるが、レンタルサーバーやVPSに設置することが好ましい。
ActivityPub
WordPressはActivityPubを実装している。WordPressへの投稿時に分散SNSにも投稿される、分散SNSからWordPressの投稿にコメントできるなどの機能がある。
WordPressの公式ホスティングサービスであるWordPress.comもActivityPubに対応している。分散SNSの中でも巨大なサーバーと言え、無視できない存在だ。
Function
Comment
Ref:
- コメントフォームの項目の文言変更と削除 | immature
- WordPress のコメントフォームを functions.php を使ってカスタマイズする
- comment_form() – Function | Developer.WordPress.org
このあたりの関数で定義されている。フィルターを挟むことで変更できる模様。
PV
WordPressでPV数を表示させる方法がいくつかある。
- 【WordPress】WordPressで人気記事を表示させるプラグイン5選! | 現役マーケターが教える未来のマーケターのためのマーケティングブログ | nukoblog
- WP-PostViewsプラグイン
- WordPress Popular Postsプラグイン
- Post Views Counter: (記事のアクセス数がわかるプラグインのPost Views Counter | たひろブログ)
WP-PostViewsプラグインのほうが柔軟性がある? (WordPressで記事ランキングを設置するならWP-PostViewsが最適なのでは? | kanae-design-works、「WP-PostViews」と「WordPress Popular Posts」の違い | クロジカ)。
WordPressの分析プラグインはDBにアクセ格納するから重くなるらしい
- Google Analytics APIを使ってWordPressの記事をランキング表示させる方法 | Tips Note by TAM
- WordPressのアクセスカウンターを変更しようとしたら思いの外苦労しました | ロードバイク好きの独り言
- Jetpack(WordPress.com)の統計情報を使ってカスタマイズし放題な人気記事ランキングを表示する - 株式会社アップシェア ブログ
- うちはJetpackの機能でPV表示に切り替えました
Jetpackの統計情報から閲覧数を取得表示することができる。これが一番手っ取り早い気がする。
<p>
<?php // 全体、月別、週別、日別のPV表示
global $post;
$views_all = 0;
$views_monthly = 0;
$views_weekly = 0;
$views_daily = 0;
//Jetpack利用時
if (is_jetpack_stats_module_active()) {
$jetpack_views = stats_get_csv( 'postviews', array('days' => -1, 'limit' => 1, 'post_id' => $post->ID ));
if (isset($jetpack_views[0]['views'])) {
$views_all = $jetpack_views[0]['views'];
}
$jetpack_views = stats_get_csv( 'postviews', array('days' => 30, 'limit' => 1, 'post_id' => $post->ID ));
if (isset($jetpack_views[0]['views'])) {
$views_monthly = $jetpack_views[0]['views'];
}
$jetpack_views = stats_get_csv( 'postviews', array('days' => 7, 'limit' => 1, 'post_id' => $post->ID ));
if (isset($jetpack_views[0]['views'])) {
$views_weekly = $jetpack_views[0]['views'];
}
$jetpack_views = stats_get_csv( 'postviews', array('days' => 1, 'limit' => 1, 'post_id' => $post->ID ));
if (isset($jetpack_views[0]['views'])) {
$views_daily = $jetpack_views[0]['views'];
}
}
echo '<span class="daily">日:<span class="pv-count">', $views_daily, '</span></span>';
echo '<span class="weekly">週:<span class="pv-count">', $views_weekly, '</span></span>';
echo '<span class="monthly">月:<span class="pv-count">', $views_monthly, '</span></span>';
echo '<span class="all">全体:<span class="pv-count">', $views_all, '</span></span>';
?>
</p>
上記コードをウィジェットに貼り付けたらうまくいった。
Language
WordPressで多言語対応サイトも構築できる。
情報源:
いろいろ方式があるが、サブディレクトリー形式が手軽な感じがする。
英語で情報発信できると、かなりの数のユーザーにアプローチできる。単に機械翻訳にするだけでも検討する価値はあるだろう。
広告ブロッカー対策
出典: 【WordPress編】広告ブロッカーからサイトコンテンツと収益を守る! | SEの良心。
[CHP Ads Block Detector] というプラグインで実現できるらしい。
「プラグイン: WordPressの広告ブロッカー対策CHP Ads Block Detector | GNU social JP Web」の通り、簡単にできた。
Widget内でのPHP実行
「WordPressのウィジェットでPHPコードを実行する方法 – FOXWP」
function widget_text_exec_php( $widget_text ) {
if( strpos( $widget_text, '<' . '?' ) !== false ) {
ob_start();
eval( '?>' . $widget_text );
$widget_text = ob_get_contents();
ob_end_clean();
}
return $widget_text;
}
add_filter( 'widget_text', 'widget_text_exec_php', 99 );
上記コードをfunction.phpに配置すると、テキストウィジェット内でPHPコード<?php ?>を実行できる模様。
Linkage
WordPressの記事・投稿を他のSNSに自動投稿する方法がいくつかある。
- WordPress 記事をSNSへ自動投稿するベストなプラグイン5選 | 新宿のホームページ制作会社 ITTI(イッティ)
- Jetpack Social connection: Jetpackの機能の一つ。Mastodon/Facebook Page/Instagram Businessアカウントが対象。FacebookとInstagramは個人アカウントはそもそも自動投稿できない。30日で30回までしか自動投稿できない。少々回数制限が厳しいかもしれない。他のプラグインを検討したほうがよさそう。
- GNU social Auto post: GNU socialへの自動投稿。
- NextScripts: Social Network Auto-Poster: Instagramだけ有料。
- Blog2Social: Instagramは有料。
- Nelio Content: 「Nelio Contentの使い方:Instagramと連携させる方法 | ワードプレステーマTCD」。Bufferというサービスのアカウント経由でInstagramも可能。Buffer+Nelio Contentの組み合わせがベストに近い。制限の入ったX/Twitterも対応できそう。ただし、投稿画面で [Customize Timeline] の選択が必要。1クリックで3SNSに投稿連携できるなら、気になるものの許容できる手間。
There has been a critical error on this website. Please check your site admin email inbox for instructions.
プラグインを無効にしようと
How to deactivate all plugins when not able to access the administrative menus?
Paid Memberships Pro
About
PMPro。有料会員サービスを実現するプラグイン。
- Advanced Developer Topics: Security, Caching, Redirection & More
- Paid Membership Pro Action and Filter Hooks
- paid-memberships-pro/includes at master · strangerstudios/paid-memberships-pro
ソースコード内のincludes配下の関数は自分でも使用可能。
Single
単体記事の販売には工夫が必要。
- Sell Paid Newsletters on WordPress
- Sell Single Courses using LearnDash and PMPro
- Paid Memberships Pro Integration with WooCommerce – WordPress plugin | WordPress.org
- Paid Memberships Pro for Selling Courses
WooCommerceと連携したり、PMProの有料プラグインを使うとか。他にも方法を以前調査したの後日追記する。
理想としては、単品販売と、会員を両立したい。2個以上買うなら会員のほうがいいみたいな。
Style
「Custom Message for Non-Members on Protected Content」でペイウォールの表示内容・スタイルを制御できる。
金額変更
定期購読で販売していて、登録後に金額を変更したいことがある。
- How to raise prices on recurring memberships? | WordPress.org
- Change Plan price | WordPress.org
- How to to when member already paid ? | WordPress.org
- Change membership level for next payment in recurring subscription | WordPress.org
これは基本的にできない。定期購読は決済サービス側で登録時の金額で固定されるため。
金額を変更したければ、一度キャンセルして、再度チェックアウト・購入してもらうしかない。
既存会員に対しては、更新ではなく、期限を設けて強制的に一度退会させるのがいい。
Restriction
membership short code
Ref: Hide bottom register form when it has membership code block.
Source: paid-memberships-pro/shortcodes/membership.php at dev · strangerstudios/paid-memberships-pro
PMProの基本的なコンテンツ制限の概念がある。
基本は投稿全体を非表示で、excerptで冒頭部分を一部表示これが基本。membershipショートコードはこの逆で、基本全表示で一部だけ非表示。
そもそも仕組みが違う。
だから、カテゴリーで管理していて、一部だけ非表示にしたかったら、末尾にmoreブロックを配置して、membeshipショートコードも使う必要がある。二重に使わないといけない。けっこう面倒くさい。
「Custom Message for Non-Members on Protected Content」がメッセージの変更方法。ただ、制限のロジックを変更できるわけではない。別のフィルターだと思う。
ソースコードを参考に自分で実装するしかないだろう。
message
「Custom Message for Non-Members on Protected Content」に基本的な表示内容やスタイルの設定方法がある。
<div class="pmpro_content_message"> //custom message here </div>
表示部分は上記要素になるのでこのクラスでスタイルをあてる。
.pmpro_content_message {
background: #F1F1F1;
margin: 0 auto;
max-width: 700px;
padding: 15px;
}
他に以下のフィルターが該当するメッセージ表示。
- add_filter( 'pmpro_non_member_text_filter', 'my_pmpro_non_member_text_filter', 5 );
- add_filter( 'pmpro_not_logged_in_text_filter', 'my_pmpro_not_logged_in_text_filter', 5 );
例えば、会員限定の文字数表示などをしたければ、自前でやるしかない。基本は自分で上記フィルターで上書きするのがよい。
例
function my_pmpro_non_member_text_filter( $text ) {
global $post, $post_membership_levels_names;
$count = mb_strlen( $post->post_content, 'UTF-8' ) - mb_strlen( get_the_excerpt(), 'UTF-8' );
$access = pmpro_has_membership_access( $post->ID, null, true );
$text = "<p>残り{$count}文字。続きは" . implode( '/', $access[2] ) . '会員限定。</p><p>Free=0/Bronze=220/Silver=1100/Gold=2200円。</p>'
. '<p><a href="https://web.gnusocial.jp/member/level/">会員登録</a>/'
. '<a href="//web.gnusocial.jp/member/login/">ログイン</a> (<a href="//web.gnusocial.jp/about/member/">About Member</a>)。</p>';
return $text;
}
add_filter( 'pmpro_non_member_text_filter', 'my_pmpro_non_member_text_filter', 5 );
add_filter( 'pmpro_not_logged_in_text_filter', 'my_pmpro_non_member_text_filter', 5 );
Style
ペイウォール (.pmpro_content_message) のスタイルは会員登録の誘発に重要。
有名サービスの例は上記。登録・購入ボタンを大きく押しやすくしている。a要素の他button要素でも実装されている。ここはいろいろ考えてもいいかもしれない。
Analytics
PMProの流入元の記事を分析・特定する方法がある。
GA4を使った一般的なサイト分析になる。有料プラグインでもできる。
Sell
単品販売の方法。有料アドオン、LearnDash、後はWooCommerce連携など。
PMProのAddon Packagesは、まずあるメンバーシップレベルのユーザーに購入権利を与えて、そこから購入する形。
あくまで単品販売で、定期販売はできない。記事別に金額の入力欄が表示されてそれで単品販売する形。悪くない。こちらの理想に近い。単品販売することにした記事は買うしかない。あるメンバーレベルなら買わなくても見れるというようにはできなさそう。いや。1レベルだけ全アクセス可能はできる。
ただ、Plus会員限定の有料アドオン。それだけが残念。
いや、有料アドオンだが、別に無料で使える模様 (PMPro: Free WordPress Membership Plugin)。サポートを販売している扱いの模様。
Course
- Paid Memberships Pro Addon for WP Courseware – WordPress plugin | WordPress.org
- Courses for Membership Add On Plugin
- LearnDash Add On Plugin for Paid Memberships Pro
LearnCashはちょっといまいち。外部のプラグインとの連携。この機能自体はPMProのあるレベルが、LernDashのあるコースにアクセス可能にするだけだから、あまり意味ない。PMProだけでも似たようなことはできる。