WooCommerceのパーマリンク設定を取得する
諸事情でWooCommerceから設定できるパーマリンクをとりたかったので覚書。 DBを見る データそのものはwp_optionsに入っている。 パーマリンクの更新を行っていない場合は存在しないかもしれない。 mysql […]
広告ここから
広告ここまで
目次
諸事情でWooCommerceから設定できるパーマリンクをとりたかったので覚書。
DBを見る
データそのものはwp_options
に入っている。
パーマリンクの更新を行っていない場合は存在しないかもしれない。
mysql> SELECT option_name,option_value FROM wp_options WHERE option_name = "woocommerce_permalinks" ; +------------------------+--------------------------------------------------------------------------------------------------------------------------+ | option_name | option_value | +------------------------+--------------------------------------------------------------------------------------------------------------------------+ | woocommerce_permalinks | a:4:{s:13:"category_base";s:0:"";s:8:"tag_base";s:0:"";s:14:"attribute_base";s:0:"";s:12:"product_base";s:8:"/product";} | +------------------------+--------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
WP-CLIで見る
WP-CLIだとフォーマット指定で見れる
$ wp option get woocommerce_permalinks --format=json { "category_base": "", "tag_base": "", "attribute_base": "", "product_base": "/product" } $ wp option get woocommerce_permalinks --format=yaml --- category_base: tag_base: attribute_base: product_base: /product
変更を見てみる
WP-CLIでみる
$ wp option get woocommerce_permalinks array ( 'category_base' => 'p-cat', 'tag_base' => 'p-tag', 'attribute_base' => 'p-atts', 'product_base' => '/shop/%product_cat%', 'use_verbose_page_rules' => true, )
わかりやすい。
初期設定値について
パーマリンク設定を全く触っていない状態だと、woocommerce_permalinksという項目がwp_optionsに存在しない。
では初期設定値はどこにあるのかというと、思いっきりベタ打ちしてある。
例:https://github.com/woocommerce/woocommerce/includes/class-wc-post-types.php#L105
register_taxonomy( 'product_cat', apply_filters( 'woocommerce_taxonomy_objects_product_cat', array( 'product' ) ), apply_filters( 'woocommerce_taxonomy_args_product_cat', array( 'hierarchical' => true, 'update_count_callback' => '_wc_term_recount', 'label' => __( 'Categories', 'woocommerce' ), 'labels' => array( 'name' => __( 'Product categories', 'woocommerce' ), 'singular_name' => __( 'Category', 'woocommerce' ), 'menu_name' => _x( 'Categories', 'Admin menu name', 'woocommerce' ), 'search_items' => __( 'Search categories', 'woocommerce' ), 'all_items' => __( 'All categories', 'woocommerce' ), 'parent_item' => __( 'Parent category', 'woocommerce' ), 'parent_item_colon' => __( 'Parent category:', 'woocommerce' ), 'edit_item' => __( 'Edit category', 'woocommerce' ), 'update_item' => __( 'Update category', 'woocommerce' ), 'add_new_item' => __( 'Add new category', 'woocommerce' ), 'new_item_name' => __( 'New category name', 'woocommerce' ), 'not_found' => __( 'No categories found', 'woocommerce' ), ), 'show_ui' => true, 'query_var' => true, 'capabilities' => array( 'manage_terms' => 'manage_product_terms', 'edit_terms' => 'edit_product_terms', 'delete_terms' => 'delete_product_terms', 'assign_terms' => 'assign_product_terms', ), 'rewrite' => array( 'slug' => empty( $permalinks['category_base'] ) ? _x( 'product-category', 'slug', 'woocommerce' ) : $permalinks['category_base'], 'with_front' => false, 'hierarchical' => true, ), ) ) );
初期パーマリンクまとめ
Name | Default slug | Source |
---|---|---|
Category | product-category | https://github.com/woocommerce/woocommerce/includes/class-wc-post-types.php#L105 |
Tags | product-tag | https://github.com/woocommerce/woocommerce/includes/class-wc-post-types.php#L143 |
商品ページ | product | https://github.com/woocommerce/woocommerce/includes/class-wc-post-types.php#L234 |
※attribute_baseはproductのslug決定処理内にありました。
まとめ
WooCommerceで追加される投稿タイプのパーマリンクを取得する場合は、以下の通り。
WordPress | get_option('woocommerce_permalinks'); |
---|---|
WP-CLI | $ wp option get woocommerce_permalinks |
MySQL | mysql> SELECT option_name,option_value FROM wp_options WHERE option_name = "woocommerce_permalinks"; |
もしこれで値が取れない場合は、以下の初期値が適用されている。
Name | Default slug |
---|---|
Category | product-category |
Tags | product-tag |
商品ページ | product |