Files
wordpress-theme-aksrt/templates/parts/user-center/creator-posts.php
T
kate522andClaude Opus 5 35bb96e82f refactor: rename the theme brand and every identifier from AKSRT to Jio
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.

Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
  cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
  window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)

Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
  so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
  (dropped 3 stale entries, added the 17 missing ones)

Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
  get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
  when it is empty

Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.

Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-11-01 20:05:04 +08:00

35 lines
3.7 KiB
PHP

<?php
defined('ABSPATH') || exit;
$context = is_array($args['context'] ?? null) ? $args['context'] : [];
extract($context, EXTR_SKIP); // phpcs:ignore WordPress.PHP.DontExtract.extract_extract
$creator_args = is_array($args['creator_args'] ?? null) ? $args['creator_args'] : [];
$status = (string) ($creator_args['status'] ?? 'all');
$statuses = $status === 'all' ? ['publish', 'draft', 'pending', 'private'] : [$status];
$page = max(1, (int) ($_GET['creator_page'] ?? 1));
$q = new WP_Query(['author' => (int) $user_id, 'post_type' => 'post', 'post_status' => $statuses, 'posts_per_page' => 10, 'paged' => $page, 'no_found_rows' => false]);
$front_submit = class_exists('\\Jio\\Core\\FrontSubmit') ? \Jio\Core\FrontSubmit::get_instance() : null;
$status_labels = ['publish' => __('已发布', 'jio'), 'draft' => __('草稿', 'jio'), 'pending' => __('待审核', 'jio'), 'private' => __('私密', 'jio')];
?>
<?php if ($q->have_posts()) : ?>
<div class="creator-post-list">
<?php while ($q->have_posts()) : $q->the_post();
$post_id = get_the_ID();
$post_status = get_post_status();
$edit_url = $front_submit && $front_submit->can_edit_post($post_id, (int) $user_id) ? jio_get_new_post_url($post_id) : '';
$can_delete = $front_submit && $front_submit->can_delete_post($post_id, (int) $user_id);
$price = (float) get_post_meta($post_id, '_jio_pay_price', true);
?>
<article class="creator-post-row" data-post-id="<?php echo esc_attr((string) $post_id); ?>">
<a class="creator-post-row__thumb" href="<?php echo esc_url(get_permalink($post_id)); ?>" aria-label="<?php echo esc_attr(get_the_title()); ?>">
<?php if (has_post_thumbnail($post_id)) : the_post_thumbnail('medium'); else : ?><span><i class="fa fas fa-pen" aria-hidden="true"></i></span><?php endif; ?>
</a>
<div class="creator-post-row__body"><div class="creator-post-row__heading"><h4><a href="<?php echo esc_url(get_permalink($post_id)); ?>"><?php echo esc_html(get_the_title()); ?></a></h4><span class="creator-post-row__status creator-post-row__status--<?php echo esc_attr($post_status); ?>"><?php echo esc_html($status_labels[$post_status] ?? $post_status); ?></span></div><p><?php echo esc_html(wp_trim_words(get_the_excerpt(), 20, '…')); ?></p><div class="creator-post-row__meta"><time datetime="<?php echo esc_attr(get_the_date('c')); ?>"><?php echo esc_html(get_the_date()); ?></time><span><?php echo $price > 0 ? esc_html__('付费内容', 'jio') : esc_html__('免费内容', 'jio'); ?></span></div></div>
<div class="creator-post-row__actions"><?php if ($edit_url) : ?><a href="<?php echo esc_url($edit_url); ?>" class="creator-post-row__action"><?php esc_html_e('编辑', 'jio'); ?></a><?php endif; ?><a href="<?php echo esc_url(get_permalink($post_id)); ?>" class="creator-post-row__action"><?php esc_html_e('查看', 'jio'); ?></a><?php if ($can_delete) : ?><button type="button" class="creator-post-row__action creator-post-row__action--danger" data-action="delete-post" data-post-id="<?php echo esc_attr((string) $post_id); ?>" data-nonce="<?php echo esc_attr(wp_create_nonce('jio_submit')); ?>"><?php esc_html_e('删除', 'jio'); ?></button><?php endif; ?></div>
</article>
<?php endwhile; ?>
</div>
<?php jio_render_profile_pagination((int) $q->max_num_pages, $page, 'creator_page'); wp_reset_postdata(); ?>
<?php else : ?>
<div class="creator-workspace__empty"><i class="fa fas fa-pen" aria-hidden="true"></i><h4><?php esc_html_e('还没有文章', 'jio'); ?></h4><p><?php esc_html_e('开始创作你的第一篇文章吧。', 'jio'); ?></p><?php if (!empty($new_post_url)) : ?><a class="btn-primary btn-sm" href="<?php echo esc_url($new_post_url); ?>"><?php esc_html_e('写新文章', 'jio'); ?></a><?php endif; ?></div>
<?php endif; ?>