diff --git a/inc/helpers/user-center-renderers/form-contacts.php b/inc/helpers/user-center-renderers/form-contacts.php new file mode 100644 index 00000000..6fbe0485 --- /dev/null +++ b/inc/helpers/user-center-renderers/form-contacts.php @@ -0,0 +1,34 @@ + +
+

+

+
+ $contact) : ?> +
+ + + + +
+ +
+ +
diff --git a/inc/helpers/user-center-renderers/posts-list.php b/inc/helpers/user-center-renderers/posts-list.php new file mode 100644 index 00000000..7493e5b5 --- /dev/null +++ b/inc/helpers/user-center-renderers/posts-list.php @@ -0,0 +1,60 @@ + $user_id, + 'post_status' => ('all' === $post_status_filter) + ? ['publish', 'draft', 'pending', 'private'] + : $post_status_filter, + 'posts_per_page' => $per_page, + 'paged' => $posts_page, + 'no_found_rows' => false, + 'update_post_meta_cache' => false, + 'update_post_term_cache' => true, +]; +$q = new WP_Query($ps_args); +if ($q->have_posts()) : + ?> +
+ have_posts()) : + $q->the_post(); + $st = get_post_status(); + $status_label = ''; + if ('publish' !== $st) { + $st_map = [ + 'draft' => __('草稿', 'aksrt'), + 'pending' => __('待审', 'aksrt'), + 'private' => __('私密', 'aksrt'), + 'future' => __('定时', 'aksrt'), + ]; + $status_label = $st_map[$st] ?? $st; + } + $edit_link = get_edit_post_link(); + get_template_part('templates/parts/content', 'profile-list-item', [ + 'action' => $edit_link ? ['type' => 'edit', 'url' => $edit_link, 'label' => __('编辑', 'aksrt')] : [], + 'status' => $status_label, + ]); + endwhile; + ?> +
+ max_num_pages, $posts_page, 'posts_page'); + wp_reset_postdata(); +else : + aksrt_render_profile_empty( + $svg_empty_post, + __('还没有文章', 'aksrt'), + __('试试发布你的第一篇文章吧。', 'aksrt'), + admin_url('post-new.php'), + __('写文章', 'aksrt') + ); +endif; diff --git a/inc/helpers/user-center-renderers/posts-status-filter.php b/inc/helpers/user-center-renderers/posts-status-filter.php new file mode 100644 index 00000000..6ef1bb93 --- /dev/null +++ b/inc/helpers/user-center-renderers/posts-status-filter.php @@ -0,0 +1,40 @@ + __('已发布', 'aksrt'), + 'draft' => __('草稿', 'aksrt'), + 'pending' => __('待审', 'aksrt'), + 'private' => __('私密', 'aksrt'), + 'all' => __('全部', 'aksrt'), +]; +?> +
+ $status_text) : + $count_for_chip = ('all' === $status_key) + ? $post_count + : ($user_status_counts[$status_key] ?? 0); + if ('publish' !== $status_key && 'all' !== $status_key && $count_for_chip < 1) { + continue; + } + $chip_url = add_query_arg([ + 'tab' => 'posts', + 'post_status' => $status_key, + 'posts_page' => 1, + ], remove_query_arg(['posts_page'])); + $chip_active = ($post_status_filter === $status_key); + ?> + + + + + +
diff --git a/inc/helpers/user-center-renderers/profile-comments.php b/inc/helpers/user-center-renderers/profile-comments.php index f2b976b6..3f9b124f 100644 --- a/inc/helpers/user-center-renderers/profile-comments.php +++ b/inc/helpers/user-center-renderers/profile-comments.php @@ -10,37 +10,38 @@ defined('ABSPATH') || exit; $context = is_array($args['context'] ?? null) ? $args['context'] : []; extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract ?> - -
-
-

- -

-
- $user_id, - 'number' => $per_page, - 'offset' => ( $comments_page - 1 ) * $per_page, - 'status' => 'approve', - 'update_comment_meta_cache' => false, - ] ); - if ( $cs ) : ?> -
- $c]); - endforeach; ?> -
- - +
+
+

+ +

+
+ $user_id, + 'number' => $per_page, + 'offset' => ($comments_page - 1) * $per_page, + 'status' => 'approve', + 'update_comment_meta_cache' => false, + ]); + if ($cs) : + ?> +
+ $c]); + } + ?>
+ +
diff --git a/inc/helpers/user-center-renderers/profile-favorites.php b/inc/helpers/user-center-renderers/profile-favorites.php index efc10fe0..dc151d89 100644 --- a/inc/helpers/user-center-renderers/profile-favorites.php +++ b/inc/helpers/user-center-renderers/profile-favorites.php @@ -10,56 +10,60 @@ defined('ABSPATH') || exit; $context = is_array($args['context'] ?? null) ? $args['context'] : []; extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract ?> - -
-
-

- -

-
- 'post', - 'post_status' => 'publish', - 'post__in' => $favorite_post_ids, - 'orderby' => 'post__in', - 'posts_per_page' => $per_page, - 'paged' => $favorites_page, - 'ignore_sticky_posts' => true, - 'no_found_rows' => false, - 'update_post_meta_cache' => false, - ] ); - if ( $favorites_query->have_posts() ) : ?> -
- have_posts() ) : $favorites_query->the_post(); - get_template_part('templates/parts/content', 'profile-list-item', [ - 'action' => [ - 'type' => 'unfavorite', - 'url' => '#', - 'label' => __('取消收藏', 'aksrt'), - ], - ]); - endwhile; ?> -
- max_num_pages, $favorites_page, 'favorites_page' ); ?> - -
+
+
+

+ +

+
+ 'post', + 'post_status' => 'publish', + 'post__in' => $favorite_post_ids, + 'orderby' => 'post__in', + 'posts_per_page' => $per_page, + 'paged' => $favorites_page, + 'ignore_sticky_posts' => true, + 'no_found_rows' => false, + 'update_post_meta_cache' => false, + ]); + if ($favorites_query->have_posts()) : + ?> +
+ have_posts()) : + $favorites_query->the_post(); + get_template_part('templates/parts/content', 'profile-list-item', [ + 'action' => [ + 'type' => 'unfavorite', + 'url' => '#', + 'label' => __('取消收藏', 'aksrt'), + ], + ]); + endwhile; + ?> +
+ max_num_pages, $favorites_page, 'favorites_page'); + wp_reset_postdata(); + else : + aksrt_render_profile_empty( + $svg_empty_favorite, + __('收藏列表为空', 'aksrt'), + __('点击文章页面的星标收藏喜欢的内容。', 'aksrt'), + home_url('/'), + __('去发现好文', 'aksrt') + ); + endif; + else : + aksrt_render_profile_empty( + $svg_empty_favorite, + __('收藏列表为空', 'aksrt'), + __('点击文章页面的星标收藏喜欢的内容。', 'aksrt'), + home_url('/'), + __('去发现好文', 'aksrt') + ); + endif; + ?> +
diff --git a/inc/helpers/user-center-renderers/profile-form.php b/inc/helpers/user-center-renderers/profile-form.php index b49cc8c1..31b0ade3 100644 --- a/inc/helpers/user-center-renderers/profile-form.php +++ b/inc/helpers/user-center-renderers/profile-form.php @@ -1,6 +1,6 @@ - -
- - - + + + + - -
-

- -

-
+
+

+ +

+
- -
-

- -

-
+
+

+ +

+
- - -
-

-

-
- $contact ) : ?> -
- - - - -
- -
- -
- + - -
- - -
-
+
+ + +
+ diff --git a/inc/helpers/user-center-renderers/profile-header.php b/inc/helpers/user-center-renderers/profile-header.php index 34741bb5..38d6b5be 100644 --- a/inc/helpers/user-center-renderers/profile-header.php +++ b/inc/helpers/user-center-renderers/profile-header.php @@ -10,70 +10,71 @@ defined('ABSPATH') || exit; $context = is_array($args['context'] ?? null) ? $args['context'] : []; extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract ?> - -
-
- -
- - - +
+
+ +
+ + + + +
+
+
+ display_name); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
+
+

+ display_name); ?> + +

+ description) : ?> +

description); ?>

+ + +
+ + + + + + +
+ +
+ + user_login); ?> + + user_email) : ?> + + user_email); ?> +
-
-
- display_name ); ?> -
-
-

- display_name ); ?> - -

- description ) : ?> -

description ); ?>

- - -
- - - - - - -
- -
- - user_login ); ?> - - user_email ) : ?> - - user_email ); ?> - - -
-
- -
+ +
+
diff --git a/inc/helpers/user-center-renderers/profile-posts.php b/inc/helpers/user-center-renderers/profile-posts.php index f8c7f1db..e7ebbe8c 100644 --- a/inc/helpers/user-center-renderers/profile-posts.php +++ b/inc/helpers/user-center-renderers/profile-posts.php @@ -1,6 +1,6 @@ - -
-
-

- -

- __( '已发布', 'aksrt' ), - 'draft' => __( '草稿', 'aksrt' ), - 'pending' => __( '待审', 'aksrt' ), - 'private' => __( '私密', 'aksrt' ), - 'all' => __( '全部', 'aksrt' ), - ]; - ?> -
- $status_text ) : - $count_for_chip = ( 'all' === $status_key ) - ? $post_count - : ( $user_status_counts[ $status_key ] ?? 0 ); - if ( 'publish' !== $status_key && 'all' !== $status_key && $count_for_chip < 1 ) { - continue; - } - $chip_url = add_query_arg( [ - 'tab' => 'posts', - 'post_status' => $status_key, - 'posts_page' => 1, - ], remove_query_arg( [ 'posts_page' ] ) ); - $chip_active = ( $post_status_filter === $status_key ); - ?> - - - - - -
-
- - $user_id, - 'post_status' => ( 'all' === $post_status_filter ) - ? [ 'publish', 'draft', 'pending', 'private' ] - : $post_status_filter, - 'posts_per_page' => $per_page, - 'paged' => $posts_page, - 'no_found_rows' => false, - 'update_post_meta_cache' => false, - 'update_post_term_cache' => true, - ]; - $q = new WP_Query( $ps_args ); - if ( $q->have_posts() ) : ?> -
- have_posts() ) : $q->the_post(); - $st = get_post_status(); - $status_label = ''; - if ( 'publish' !== $st ) { - $st_map = [ - 'draft' => __( '草稿', 'aksrt' ), - 'pending' => __( '待审', 'aksrt' ), - 'private' => __( '私密', 'aksrt' ), - 'future' => __( '定时', 'aksrt' ), - ]; - $status_label = $st_map[ $st ] ?? $st; - } - - $edit_link = get_edit_post_link(); - get_template_part('templates/parts/content', 'profile-list-item', [ - 'action' => $edit_link ? ['type' => 'edit', 'url' => $edit_link, 'label' => __('编辑', 'aksrt')] : [], - 'status' => $status_label, - ]); - endwhile; ?> -
- max_num_pages, $posts_page, 'posts_page' ); ?> - -
+
+
+

+ +

+ +
+ +
diff --git a/inc/helpers/user-center-renderers/profile-sidebar.php b/inc/helpers/user-center-renderers/profile-sidebar.php index ca89d22c..589bc99f 100644 --- a/inc/helpers/user-center-renderers/profile-sidebar.php +++ b/inc/helpers/user-center-renderers/profile-sidebar.php @@ -1,6 +1,6 @@ - -
-
-
- - - - - - - - - - - - -
-
- - -
-
-
- $tab ) : ?> - - - - - - - - - 0 ) : ?> - - - -
-
- - - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - + diff --git a/inc/helpers/user-center-renderers/sidebar-commerce.php b/inc/helpers/user-center-renderers/sidebar-commerce.php new file mode 100644 index 00000000..e8dab67b --- /dev/null +++ b/inc/helpers/user-center-renderers/sidebar-commerce.php @@ -0,0 +1,44 @@ + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
diff --git a/inc/helpers/user-center-renderers/sidebar-nav.php b/inc/helpers/user-center-renderers/sidebar-nav.php new file mode 100644 index 00000000..ef070353 --- /dev/null +++ b/inc/helpers/user-center-renderers/sidebar-nav.php @@ -0,0 +1,29 @@ + +
+
+
+ $tab) : ?> + + + + + + + + + 0) : ?> + + + +
+
diff --git a/inc/helpers/user-center-renderers/sidebar-stats.php b/inc/helpers/user-center-renderers/sidebar-stats.php new file mode 100644 index 00000000..43548b18 --- /dev/null +++ b/inc/helpers/user-center-renderers/sidebar-stats.php @@ -0,0 +1,32 @@ + +
+
+
+ + + + + + + + + + + + +
+
diff --git a/templates/parts/user-center/README.md b/templates/parts/user-center/README.md index 9d6d702b..dc49db08 100644 --- a/templates/parts/user-center/README.md +++ b/templates/parts/user-center/README.md @@ -7,12 +7,14 @@ - aksrt_user_center_resolve_tabs() - aksrt_capture_user_center_view() (profile → form 映射) - 挂载点:header / sidebar / mobile-tabs / panel / account-modals / runtime-config -- 渲染器:inc/helpers/user-center-renderers/ - - profile-form / posts / comments / favorites / header / sidebar / account-modals - - profile-credits.php 编排: - credits-balance / credits-vip / credits-signin / credits-transactions - - profile-settings.php 编排: - settings-bindings / settings-security / settings-invite / settings-runtime-fields + +渲染器(inc/helpers/user-center-renderers/): +- profile-form.php → form-contacts.php +- profile-posts.php → posts-status-filter.php + posts-list.php +- profile-sidebar.php → sidebar-stats/nav/commerce.php +- profile-credits.php → credits-balance/vip/signin/transactions.php +- profile-settings.php → settings-bindings/security/invite/runtime-fields.php +- profile-header / comments / favorites / account-modals 样式归属: - assets/css/routes/user-center.css