文章 / 7 天前
使用 WordPress 创建自定义链接分享
步骤 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 as$key => $value) {
if ($key == 'date') {
$new_columns['link_url'] = __('链接地址');
}
$new_columns[$key] = $value;
}
return $new_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了,但是也了解了链接的生成方式
不错!
我看你站点挺完善了,每次看都有新东西,给了我点启发。
哈哈哈哈哈 每天一个新想法