概要
woocommerce_create_page_id は、WooCommerceがページを作成する際にトリガーされるアクションフックです。このフックは、WooCommerceの各店舗におけるページのIDが生成されるときに呼び出され、カスタム処理を追加するために使用されます。以下はこのアクションがよく使われる場面です:
- カスタムフィールドの追加
- ページタイトルの変更
- SEOメタデータの設定
- アクセス制限や権限の設定
- ページデザインのカスタマイズ
- レビューや評価機能の追加
構文
do_action('woocommerce_create_page_id', $page_id, $page_type);
パラメータ
$page_id(int): 作成されたページのID。$page_type(string): 作成されるページのタイプ(例: ‘shop’, ‘cart’, ‘checkout’ など)。
戻り値
このアクション自体には戻り値はありません。カスタム処理を行うための呼び出しとして機能します。
使用可能なプラグインWooCommerceのバージョン
このアクションはWooCommerceバージョン2.1以降で利用可能です。
ワードプレスのバージョン
WordPressの様々なバージョンで使用可能ですが、特にWooCommerceとの互換性が重要です。
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | 〇 |
| plugins_loaded | 〇 |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | 〇 |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプル1: カスタムフィールドの追加
add_action('woocommerce_create_page_id', 'add_custom_field_to_page', 10, 2);
function add_custom_field_to_page($page_id, $page_type) {
if ($page_type === 'shop') {
add_post_meta($page_id, 'custom_field_key', 'Custom Value', true);
}
}
このコードは、Shopページが作成される際にそのページにカスタムフィールドを追加します。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/add_post_meta/)
サンプル2: ページタイトルの変更
add_action('woocommerce_create_page_id', 'change_page_title', 10, 2);
function change_page_title($page_id, $page_type) {
if ($page_type === 'cart') {
$page = array(
'ID' => $page_id,
'post_title' => 'My Custom Cart Title',
);
wp_update_post($page);
}
}
このコードは、カートページが作成される際にページタイトルをカスタマイズします。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/wp_update_post/)
サンプル3: SEOメタデータの設定
add_action('woocommerce_create_page_id', 'set_seo_meta_data', 10, 2);
function set_seo_meta_data($page_id, $page_type) {
if ($page_type === 'checkout') {
update_post_meta($page_id, '_yoast_wpseo_title', 'Custom Checkout Title');
}
}
このコードは、チェックアウトページが作成される際にSEOに関連するメタデータを設定します。
※ 参考 URL: (https://developer.yoast.com/docs/api/)
サンプル4: アクセス制限の設定
add_action('woocommerce_create_page_id', 'restrict_page_access', 10, 2);
function restrict_page_access($page_id, $page_type) {
if ($page_type === 'myaccount') {
// カスタム制限ロジックを追加
}
}
このコードは、マイアカウントページを作成する際にアクセス制限を実装するためのベースを提供します。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/current_user_can/)
サンプル5: ページデザインのカスタマイズ
add_action('woocommerce_create_page_id', 'custom_page_design', 10, 2);
function custom_page_design($page_id, $page_type) {
if ($page_type === 'shop') {
update_post_meta($page_id, '_custom_design_meta', 'custom_design_value');
}
}
このコードは、Shopページに特定のデザインメタデータを追加することができます。
※ 参考 URL: (https://developer.wordpress.org/reference/functions/update_post_meta/)