导入 AKSRT 主题开发源码
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
/**
|
||||
* Profile List Item — image-less list row for user center.
|
||||
*
|
||||
* 用于:
|
||||
* - 我的文章 / 我的收藏 / 公开主页文章列表
|
||||
*
|
||||
* 通过 set_query_var() 接收以下参数(可选):
|
||||
* - aksrt_profile_item_action: ['type'=>'edit'|'view'|'unfavorite', 'url'=>'...', 'label'=>'...']
|
||||
* - aksrt_profile_item_status: 文章状态徽章文本(如 "草稿" / "私密")
|
||||
*
|
||||
* @package AKSRT
|
||||
*/
|
||||
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
$action = get_query_var('aksrt_profile_item_action', []);
|
||||
if (!is_array($action)) {
|
||||
$action = [];
|
||||
}
|
||||
$action_type = isset($action['type']) ? (string) $action['type'] : '';
|
||||
$action_url = isset($action['url']) ? (string) $action['url'] : '';
|
||||
$action_label = isset($action['label']) ? (string) $action['label'] : '';
|
||||
|
||||
$status_label = (string) get_query_var('aksrt_profile_item_status', '');
|
||||
|
||||
$post_id = get_the_ID();
|
||||
$permalink = get_permalink();
|
||||
$title = get_the_title();
|
||||
$date_iso = get_the_date('c');
|
||||
$date_label = get_the_date();
|
||||
$excerpt = wp_trim_words(get_the_excerpt(), 30, '…');
|
||||
$comment_count = (int) get_comments_number();
|
||||
$categories = get_the_category() ?: [];
|
||||
$tags = get_the_tags() ?: [];
|
||||
?>
|
||||
<article <?php post_class('profile-list-item'); ?>>
|
||||
<div class="profile-list-item__main">
|
||||
<div class="profile-list-item__head">
|
||||
<h3 class="profile-list-item__title">
|
||||
<a href="<?php echo esc_url($permalink); ?>"><?php echo esc_html($title); ?></a>
|
||||
<?php if ($status_label) : ?>
|
||||
<span class="profile-list-item__status-badge"><?php echo esc_html($status_label); ?></span>
|
||||
<?php endif; ?>
|
||||
</h3>
|
||||
<time class="profile-list-item__date" datetime="<?php echo esc_attr($date_iso); ?>" title="<?php echo esc_attr($date_label); ?>">
|
||||
<?php echo esc_html($date_label); ?>
|
||||
</time>
|
||||
</div>
|
||||
|
||||
<?php if ($excerpt) : ?>
|
||||
<p class="profile-list-item__excerpt"><?php echo esc_html($excerpt); ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="profile-list-item__meta">
|
||||
<?php foreach ($categories as $cat) : ?>
|
||||
<a href="<?php echo esc_url(get_category_link($cat->term_id)); ?>" class="profile-list-item__chip profile-list-item__chip--category">
|
||||
<i class="fas fa-folder" aria-hidden="true"></i>
|
||||
<span><?php echo esc_html($cat->name); ?></span>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<?php foreach (array_slice($tags, 0, 4) as $tag) : ?>
|
||||
<a href="<?php echo esc_url(get_tag_link($tag->term_id)); ?>" class="profile-list-item__chip profile-list-item__chip--tag">
|
||||
#<?php echo esc_html($tag->name); ?>
|
||||
</a>
|
||||
<?php endforeach; ?>
|
||||
|
||||
<span class="profile-list-item__meta-spacer"></span>
|
||||
|
||||
<span class="profile-list-item__meta-item profile-list-item__meta-item--comments" title="<?php esc_attr_e('评论数', 'aksrt'); ?>">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"/></svg>
|
||||
<span><?php echo esc_html((string) $comment_count); ?></span>
|
||||
</span>
|
||||
|
||||
<?php if ($action_type && $action_url) :
|
||||
$action_class = 'profile-list-item__action profile-list-item__action--' . sanitize_html_class($action_type);
|
||||
$icon_svg = '';
|
||||
switch ($action_type) {
|
||||
case 'edit':
|
||||
$icon_svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M12 20h9"/><path d="M16.5 3.5a2.12 2.12 0 1 1 3 3L7 19l-4 1 1-4Z"/></svg>';
|
||||
break;
|
||||
case 'unfavorite':
|
||||
$icon_svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 17.27 18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>';
|
||||
break;
|
||||
case 'view':
|
||||
default:
|
||||
$icon_svg = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8S1 12 1 12Z"/><circle cx="12" cy="12" r="3"/></svg>';
|
||||
break;
|
||||
}
|
||||
if ('unfavorite' === $action_type) :
|
||||
?>
|
||||
<button type="button" class="<?php echo esc_attr($action_class); ?>" data-post-id="<?php echo esc_attr((string) $post_id); ?>" data-action="unfavorite" title="<?php echo esc_attr($action_label); ?>">
|
||||
<span class="profile-list-item__action-icon"><?php echo $icon_svg; // phpcs:ignore ?></span>
|
||||
<span class="profile-list-item__action-label"><?php echo esc_html($action_label); ?></span>
|
||||
</button>
|
||||
<?php else : ?>
|
||||
<a href="<?php echo esc_url($action_url); ?>" class="<?php echo esc_attr($action_class); ?>" title="<?php echo esc_attr($action_label); ?>">
|
||||
<span class="profile-list-item__action-icon"><?php echo $icon_svg; // phpcs:ignore ?></span>
|
||||
<span class="profile-list-item__action-label"><?php echo esc_html($action_label); ?></span>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
Reference in New Issue
Block a user