feat(user-center): deepen zibll parity and profile media

This commit is contained in:
2026-07-28 12:22:52 +08:00
parent c13f686cdc
commit e47ee1b029
16 changed files with 479 additions and 65 deletions
+32 -9
View File
@@ -125,6 +125,32 @@ $_aksrt_special_templates = [
'title' => '收益中心',
'fallback' => '/revenue/',
],
'messages' => [
'file' => 'templates/pages/page-messages.php',
'slug' => 'messages',
'title' => '消息中心',
'fallback' => '/messages/',
],
'submit' => [
'file' => 'templates/pages/page-submit.php',
'slug' => 'submit',
'title' => '发布文章',
'fallback' => '/submit/',
],
'product-edit' => [
'file' => 'templates/pages/page-product-edit.php',
'slug' => 'product-edit',
'title' => '发布商品',
'fallback' => '/product-edit/',
'auto_create' => false,
],
'forum-compose' => [
'file' => 'templates/forum/forum-compose.php',
'slug' => 'forum-compose',
'title' => '论坛发帖',
'fallback' => '/forum-compose/',
'auto_create' => false,
],
];
/** @var array 缓存 key=模板文件路径 => value=WP_Post|null */
@@ -486,6 +512,9 @@ function aksrt_ensure_template_page(string $key): void {
if (!isset($_aksrt_special_templates[$key])) return;
$cfg = $_aksrt_special_templates[$key];
if (array_key_exists('auto_create', $cfg) && empty($cfg['auto_create'])) {
return;
}
$desired_slug = sanitize_title($cfg['slug'] ?? $key);
// 已有页面使用此模板?仍校验模板 meta,避免空白默认页。
@@ -502,15 +531,8 @@ function aksrt_ensure_template_page(string $key): void {
if ($desired_slug !== '') {
$existing_page = get_page_by_path($desired_slug, OBJECT, 'page');
if ($existing_page instanceof WP_Post) {
if ($existing_page->post_status !== 'publish') {
wp_update_post([
'ID' => $existing_page->ID,
'post_status' => 'publish',
]);
}
update_post_meta($existing_page->ID, '_wp_page_template', $cfg['file']);
aksrt_clear_template_page_cache();
// Slug collisions belong to the administrator. System pages are
// created only when the slug is completely free.
return;
}
}
@@ -528,6 +550,7 @@ function aksrt_ensure_template_page(string $key): void {
if (!is_wp_error($page_id) && $page_id > 0) {
update_post_meta($page_id, '_wp_page_template', $cfg['file']);
update_post_meta($page_id, '_aksrt_managed_template_page', (string) $key);
aksrt_clear_template_page_cache();
}
}
+15 -15
View File
@@ -58,12 +58,9 @@ function aksrt_get_new_post_url(int $edit_id = 0): string {
}
}
$url = function_exists('aksrt_get_page_url_by_template')
? aksrt_get_page_url_by_template('templates/pages/page-submit.php')
: '';
if ($url === '') {
return '';
}
$url = function_exists('aksrt_get_template_url')
? aksrt_get_template_url('submit')
: home_url('/submit/');
if ($edit_id > 0) {
$url = add_query_arg('edit', $edit_id, $url);
}
@@ -92,9 +89,9 @@ if (!function_exists('aksrt_get_cart_page_url')) :
* 购物车页面 URL(模板 templates/pages/page-cart.php)。
*/
function aksrt_get_cart_page_url(): string {
return function_exists('aksrt_get_page_url_by_template')
? aksrt_get_page_url_by_template('templates/pages/page-cart.php')
: '';
return function_exists('aksrt_get_template_url')
? aksrt_get_template_url('cart')
: home_url('/cart/');
}
endif;
@@ -103,9 +100,9 @@ if (!function_exists('aksrt_get_revenue_page_url')) :
* 收益中心页面 URL(模板 templates/pages/page-revenue.php)。
*/
function aksrt_get_revenue_page_url(): string {
return function_exists('aksrt_get_page_url_by_template')
? aksrt_get_page_url_by_template('templates/pages/page-revenue.php')
: '';
return function_exists('aksrt_get_template_url')
? aksrt_get_template_url('revenue')
: home_url('/revenue/');
}
endif;
@@ -114,9 +111,12 @@ if (!function_exists('aksrt_get_messages_page_url')) :
* 消息中心页面 URL(模板 templates/pages/page-messages.php)。
*/
function aksrt_get_messages_page_url(): string {
return function_exists('aksrt_get_page_url_by_template')
? aksrt_get_page_url_by_template('templates/pages/page-messages.php')
: '';
if (class_exists('\AKSRT\Settings\Settings') && !\AKSRT\Settings\Settings::message_enabled()) {
return '';
}
return function_exists('aksrt_get_template_url')
? aksrt_get_template_url('messages')
: home_url('/messages/');
}
endif;