web-dev-qa-db-ja.com

特定のテンプレートを使用するページ数を制限しますか?

私はカスタムページテンプレートを持っています、それで私のthemesフォルダの.phpファイルは最初にこれを持っています

/*
 * Template Name: MyTemplate
 */

これで、WPバックエンドで、新しいページを作成してこのテンプレートを選択し、作成されたページがこのテンプレートを使用するようにすることができます。

このテンプレートを使用してページ数を制限する方法たとえば、このテンプレートを使用して単一ページを許可するだけの場合はどうすればよいですか。あるいは、それを使用する可能性のある3ページしか許可されていない場合もあります。どうすればこれを達成できますか?

3
Foo Bar

最初にデータベースクエリを使用して、既にテンプレートを使用しているページ数を数えることで、これにアプローチできます。

$query = "SELECT COUNT(*) as total
    FROM prefix_posts as p JOIN prefix_postmeta as m ON p.ID = m.post_id
    WHERE p.'post_type' = 'page'
    AND p.'post_status' = 'publish'
    AND m.'meta_key'    = '_wp_page_template'
    AND m.'meta_value'  = 'page-your-template-name.php'";

次に、カウント制限に達しているかどうかを確認し、 theme_page_templates フィルタでページテンプレートを削除します。

3
Jami Gibbs