步骤 1:在主题文件夹下,找到 functions.php
文件,将下方代码复制粘贴进去。
function create_share_links_post_type() {
register_post_type('share_links',
array(
'labels' => array(
'name' => __('链接分享'),
'singular_name' => __('链接'),
'add_new' => __('添加新链接'),
'add_new_item' => __('添加新链接'),
'edit_item' => __('编辑链接'),
'new_item' => __('新链接'),
'view_item' => __('查看链接'),
'search_items' => __('搜索链接'),
'not_found' => __('没有找到链接'),
'not_found_in_trash' => __('在回收站中没有找到链接')
),
'public' => true,
'has_archive' => true,
'supports' => array('title'),
'exclude_from_search' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'menu_icon' => 'dashicons-admin-links',
)
);
}
add_action('init', 'create_share_links_post_type');
function add_share_links_meta_boxes() {
add_meta_box(
'share_links_meta_box',
'链接地址',
'share_links_meta_box_callback',
'share_links',
'normal',
'high'
);
}
add_action('add_meta_boxes_share_links', 'add_share_links_meta_boxes');
function share_links_meta_box_callback(post) {
wp_nonce_field('save_share_links_data', 'share_links_nonce');link_url = get_post_meta(post->ID, 'link_url', true);
?>
<input type="text" id="link_url" name="link_url" value="<?php echo esc_url(link_url); ?>" class="regular-text" />
<?php
}
function save_share_links_data(post_id) {
if (!isset(_POST['share_links_nonce']) || !wp_verify_nonce(_POST['share_links_nonce'], 'save_share_links_data')) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (!current_user_can('edit_post',post_id)) {
return;
}
if (isset(_POST['link_url'])) {
update_post_meta(post_id, 'link_url', sanitize_text_field(_POST['link_url']));
}
}
add_action('save_post_share_links', 'save_share_links_data');
function share_links_columns(columns) {
new_columns = array();
foreach (columns askey =>value) {
if (key == 'date') {new_columns['link_url'] = __('链接地址');
}
new_columns[key] = value;
}
returnnew_columns;
}
add_filter('manage_share_links_posts_columns', 'share_links_columns');
function share_links_custom_column(column,post_id) {
switch (column) {
case 'link_url':link_url = get_post_meta(post_id, 'link_url', true);
if (!empty(link_url)) {
echo esc_url($link_url);
} else {
echo __('未设置');
}
break;
}
}
add_action('manage_share_links_posts_custom_column', 'share_links_custom_column', 10, 2);
步骤 2:刷新 WordPress 后台页面,在左侧菜单可看到「链接分享」。
步骤 3:在你的主题文件夹中找到(或创建)一个名为 page-templates
的子文件夹。在该文件夹中创建一个名为 share-links.php
的新文件。将下面的代码复制并粘贴到 share-links.php
文件中。
<?php /* Template Name: share_links */ ?>
<?php get_header(); ?>
<?php
// 设置每页显示的链接数量
posts_per_page = 20;
// 设置当前页码paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// 创建一个查询来获取链接
args = array(
'post_type' => 'share_links',
'posts_per_page' =>posts_per_page,
'paged' => paged,
);share_links_query = new WP_Query(args);
if (share_links_query->have_posts()) {
while (share_links_query->have_posts()) {share_links_query->the_post();
// 获取链接地址
link_url = get_post_meta(get_the_ID(), 'link_url', true);
// 输出链接地址
if (!empty(link_url)) {
echo get_the_date();
echo '<a href="' . esc_url(link_url) . '">' . get_the_title() . '</a><br>';
}
}
}
// 分页导航
<div class="pagination">
<?php
echo paginate_links(array(
'total' =>share_links_query->max_num_pages,
'current' => $paged,
));
?>
</div>
<?php
} else {
echo '<p>' . __('没有找到链接。') . '</p>';
}
wp_reset_postdata();
?>
<?php get_footer(); ?>
步骤 4:在 WordPress 后台新建一个页面,引用名为 share_links
的模板即可。
留言
谢谢分享~尽管不用WordPress了,但是也了解了链接的生成方式
不错!
回复 漫川:我看你站点挺完善了,每次看都有新东西,给了我点启发。
回复 积蒴一掷:哈哈哈哈哈 每天一个新想法