質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

6170閲覧

カスタム投稿タイプをWP-Membersで鍵付きにできない。

yosuke_ir

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/11/22 10:46

編集2018/11/26 07:48

実現したいことと発生している問題

ワードプレスにて会員コンテンツを含むサイトを構築しております。

会員コンテンツの部分となるカスタム投稿タイプブログに対して、
非ログイン状態でアクセスしようとすると、
ログイン画面に移行する仕様を意図しておりますが
ブログ一覧画面と記事詳細画面が普通にアクセスできてしまいます。

今回利用しているプラグインが「WP-Members」というものですが
こちらのプラグインが通常カスタム投稿タイプでは
通常うまく利用できないと記事を見つけ、その改善策も実行してみましたが
それでもうまくいきません。
参照ブログ)
https://raisez.com/blog/wp-members

プログラムがぶつかり合ってうまく機能していないのか
そもそも設定が間違っているのか
原因の調査方法もわからず、お詳しい方にお力をお借りできればと考えております。

開発環境

【サーバー】さくらのVPS
【OS】CentOS Linux release 7.5.1804 (Core)
【Apache】Apache/2.4.6 (CentOS)
【php】PHP Version 7.1.20
テンプレート「Llorix One Lite」をベースにカスタマイズして構築しております。

その他利用しているプラグイン
All In One SEO Pack
Content Aware Sidebars
Llorix One Companion
PS Taxonomy Expander
MW WP Form
Custom Post Type Permalinks
Custom Post Type Widgets
PS Auto Sitemap
Redirection
Shortcodes Ultimate
zipaddr-jp

設定状況

「WP-Members」の設定画面
イメージ説明

function.phpの「カスタム投稿タイプ」の情報

// =========================== // = カスタム投稿 = // =========================== //カスタム投稿タイプの追加 add_action( 'init', 'create_post_type' ); function create_post_type() { //会員ブログ register_post_type( 'memberblog', array( 'label' => '会員ブログ', // 管理画面の左メニューに表示されるテキスト 'public' => true, // 投稿タイプをパブリックにするか否か 'has_archive' => true, // アーカイブを有効にするか否か 'menu_position' => 5, // 管理画面上でどこに配置するか今回の場合は「投稿」の下に配置 'supports' => array('title','editor','comments'), // 投稿画面でどのmoduleを使うか的な設定 'rewrite' => array( 'single' => 'menu', 'with_front' => false ) ) ); //会員イベント register_post_type( 'memberevent', array( 'label' => '会員向けセミナー', 'public' => true, 'has_archive' => true, 'menu_position' => 6, 'supports' => $EditorStyle, 'rewrite' => array( 'single' => 'menu', 'with_front' => false ) ) ); //会員ブログ-カテゴリ register_taxonomy( 'memberblog-cat', // 追加するタクソノミー名(英小文字とアンダースコアのみ) 'memberblog', // どのカスタム投稿タイプに追加するか array( 'label' => 'カテゴリー', // 管理画面上に表示される名前(投稿で言うカテゴリー) 'labels' => array( 'all_items' => 'カテゴリ一覧', // 投稿画面の右カラムに表示されるテキスト(投稿で言うカテゴリー一覧) 'add_new_item' => 'カテゴリの追加' // 投稿画面の右カラムに表示されるカテゴリ追加リンク ), 'hierarchical' => true, // タクソノミーを階層化するか否か(子カテゴリを作れるか否か) 'rewrite' => array( 'single' => 'menu/category', 'with_front' => false ), 'public' => true, 'show_ui' => true ) ); //会員ブログ-タグ register_taxonomy( 'memberblog-tag', 'memberblog', array( 'hierarchical' => false, 'update_count_callback' => '_update_post_term_count', 'label' => 'タグ', 'singular_label' => 'タグ', 'public' => true, 'show_ui' => true ) ); //会員向けセミナー-カテゴリ register_taxonomy( 'memberevent-cat', 'memberevent', array( 'label' => 'カテゴリー', 'labels' => array( 'all_items' => 'カテゴリ一覧', 'add_new_item' => 'カテゴリの追加' ), 'hierarchical' => true, 'rewrite' => array( 'single' => 'menu/category', 'with_front' => false ), 'public' => true, 'show_ui' => true ) ); //会員向けセミナー-タグ register_taxonomy( 'memberevent-tag', 'memberevent', array( 'hierarchical' => false, 'update_count_callback' => '_update_post_term_count', 'label' => 'タグ', 'singular_label' => 'タグ', 'public' => true, 'show_ui' => true ) ); }

function.phpの「カスタム投稿タイプのWP-Members」の情報

/** * Identify your custom post types here. */ function my_custom_post_types() { $settings = array( 'memberblog' => 'block', 'memberevent' => 'block', ); return $settings; } // You do not need to change anything after this. add_filter( 'wpmem_block', 'block_custom_post_types' ); function block_custom_post_types( $block ) { global $post; $post_type = get_post_type( $post ); $my_cpts = my_custom_post_types(); // If this is a single post and it is a defined custom post type. if ( is_single() && ( array_key_exists( $post_type, $my_cpts ) ) ) { // Get the custom post type block definition. $cpt_block = ( $my_cpts[ $post_type ] == 'block' ) ? true : false; // Check for meta overrides. $meta = get_post_meta( get_the_ID(), '_wpmem_block', true ); if( $cpt_block ) { if ( isset( $meta ) && $meta == 0 ) { $block = false; } } else { if ( isset( $meta ) && $meta == 1 ) { $block = true; } } } // Return block value. return $block; }

【追記】固定ページ一覧のブロック設定

イメージ説明

【追記】カスタム投稿記事のブロック設定

イメージ説明
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

カスタム投稿のページのStatusをBlockedにしてないからでは?

追記
カスタム投稿の入力画面でメタボックスは表示されてますか?
無いなら表示オプションを確認。
イメージ説明

投稿2018/11/22 13:21

編集2018/11/26 04:05
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yosuke_ir

2018/11/22 14:52

回答ありがとうございます。 固定ページにおける設定のstatus設定のことでしょうか。 追記に記載しましたが、固定ページ上ではstatusがブロックになっておりました。
退会済みユーザー

退会済みユーザー

2018/11/22 14:58

質問は【カスタム投稿タイプをWP-Membersで鍵付きにできない。】ですよね?固定ページではないのでは?
yosuke_ir

2018/11/26 02:43

ご返事が遅くなりまして申し訳ありません。 ご指摘の通り固定ページではございませんが、カスタム投稿タイプのstatus設定はどこですればいいでしょうか? 僕が把握している設定箇所が、各固定ページの編集ページか、「WP-Members」の設定画面か、function.phpの「カスタム投稿タイプのWP-Members」の情報しかございませんでしたので、 その中のどの部分なのか、もしくは別の箇所なのか、ご教示いただけないでしょうか?
yosuke_ir

2018/11/26 07:50

追記を確認させていただき、 ご指摘の箇所と思われる箇所を追記させていただきました。 私で確認する限りはBlockedになっております。。。。
退会済みユーザー

退会済みユーザー

2018/11/26 08:06

メタボックスありますね。 『function.phpの「カスタム投稿タイプのWP-Members」の情報』のコードは必須なんでしょうか? そのコードが無いとカスタム投稿でプラグインが使えないのでしょうか? だとするならば違うと思いますが…
yosuke_ir

2018/11/26 08:07

なるほど。では一度削除してみてどうなるか、確認してみます。
yosuke_ir

2018/11/26 08:19

今確認したところ、記事にブロックが無事かかっていました。 ご指摘ありがとうございました。 一点僕が勘違いしていたのですが WP-Membersでは記事一覧ページやアーカイブページのブロックはできないみたいですね。 もしこちらもご存知でしたら教えていただけると幸いです。
退会済みユーザー

退会済みユーザー

2018/11/26 08:47 編集

index.phpやarchive.phpで非ログインの場合はユーザー登録ページへリダイレクトさせてはどうでしょう? is_user_logged_inとwp_redirectを使えば可能です。 追記 functions.phpの方が楽ですね。 is_archiveやis_homeを使ってis_user_logged_inとwp_redirectを併せればいいです。
yosuke_ir

2018/11/26 09:04

先ほど実装できました。 不勉強な質問ばかりでしたが、 丁寧に回答をいただきまして誠にありがとうございました。 今後何かございましたらよろしくお願いします!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問