【发布时间】:2020-11-13 16:11:22
【问题描述】:
我正在尝试在 Woocommerce 的“我的帐户”部分创建一个自定义页面,但是当我打开此页面时,我得到 404(找不到页面)。我试图重新保存(刷新)设置 - > 永久链接中的永久链接,但没有任何变化(再次出现 404 - 找不到页面)。我正在使用这个永久链接类型“https://mywebsite.com/sample-post/”。当我将永久链接类型更改为“https://mywebsite.com/?p=123”时,它正在工作并显示页面。有人可以告诉我问题出在哪里以及为什么它与“普通”永久链接一起使用,但它不适用于“帖子名称”永久链接? 这是我的代码 sn-p:
// 1. Register new endpoint to use for My Account page
// Note: Resave Permalinks or it will give 404 error
function bbloomer_add_premium_support_endpoint() {
add_rewrite_endpoint( 'premium-support', EP_ROOT | EP_PAGES );
}
add_action( 'init', 'bbloomer_add_premium_support_endpoint' );
// ------------------
// 2. Add new query var
function bbloomer_premium_support_query_vars( $vars ) {
$vars[] = 'premium-support';
return $vars;
}
add_filter( 'query_vars', 'bbloomer_premium_support_query_vars', 0 );
// ------------------
// 3. Insert the new endpoint into the My Account menu
function bbloomer_add_premium_support_link_my_account( $items ) {
$items['premium-support'] = 'Premium Support';
return $items;
}
add_filter( 'woocommerce_account_menu_items', 'bbloomer_add_premium_support_link_my_account' );
// ------------------
// 4. Add content to the new endpoint
function bbloomer_premium_support_content() {
echo '<h3>Premium WooCommerce Support</h3><p>Welcome to the WooCommerce support area. As a premium customer, you can submit a ticket should you have any WooCommerce issues with your website, snippets or customization. <i>Please contact your theme/plugin developer for theme/plugin-related support.</i></p>';
echo do_shortcode( ' /* your shortcode here */ ' );
}
add_action( 'woocommerce_account_premium-support_endpoint', 'bbloomer_premium_support_content' );
// Note: add_action must follow 'woocommerce_account_{your-endpoint-slug}_endpoint' format
【问题讨论】:
-
该代码与“帖子名称”永久链接一起工作得很好……所以在你的情况下还有其他问题,比如另一个插件、你的主题或其他一些自定义代码。
-
我尝试并停止了所有插件和 sn-ps。还尝试将主题更改为默认主题,但没有任何变化 - 它返回未找到页面 (404)。有趣的是,如果我将永久链接类型更改为“普通”,它就可以工作......
-
对我来说它有效,我在 StackOverFlow 上也有类似的有效答案:stackoverflow.com/questions/38051331/…
标签: php wordpress woocommerce permalinks custom-pages