wordpress链接的调用方法

本文详细介绍WordPress中链接(URL)的各种调用方法,涵盖从基础到高级的应用场景。

一、基础链接调用函数

  1. 网站首页链接

    // 获取首页URL
    echo home_url(); // 输出: https://wodepress.com
    echo home_url('/contact/'); // 输出: https://wodepress.com/contact/

  2. 当前页面/文章链接

    // 获取当前文章或页面的 permalink
    echo get_permalink(); // 必须在Loop内使用
    echo get_permalink($post_id); // 指定文章ID获取链接

  3. 页面链接获取

    // 通过页面ID获取链接
    echo get_page_link(42);

    // 通过页面别名(slug)获取
    page = get_page_by_path('about-us'); echo get_permalink(page->ID);

二、主题文件链接

  1. 主题目录相关

    // 获取主题根目录URL
    echo get_template_directory_uri(); // 父主题
    echo get_stylesheet_directory_uri(); // 子主题(如果在子主题中使用)

    // 常用组合:引用主题内资源
    echo get_template_directory_uri() . '/assets/css/style.css';
    echo get_stylesheet_directory_uri() . '/images/logo.png';

  2. 包含主题文件

    // 安全地包含主题文件
    get_header(); // 包含 header.php
    get_footer(); // 包含 footer.php
    get_sidebar(); // 包含 sidebar.php

    // 包含自定义模板部分
    get_template_part('content', 'single'); // 包含 content-single.php

三、内容链接处理

  1. 附件/上传文件链接

    // 获取特色图片URL
    thumbnail_url = get_the_post_thumbnail_url(post_id, 'full');

    // 获取附件直接链接
    echo wp_get_attachment_url($attachment_id);

    // 获取指定尺寸的附件链接
    echo wp_get_attachment_image_src($attachment_id, 'medium')[0];

  2. 分类/标签链接

    // 获取分类链接
    echo get_category_link(category_id); echo get_term_link(term, 'category');

    // 获取标签链接
    echo get_tag_link($tag_id);

四、导航菜单链接

  1. 自定义菜单调用

    // 在主题中注册菜单位置
    function register_my_menus() {
    register_nav_menus(array(
    'primary' => '主导航菜单',
    'footer' => '底部菜单'
    ));
    }
    add_action('init', 'register_my_menus');

  2. 输出导航菜单

    // 基础调用
    wp_nav_menu(array('theme_location' => 'primary'));

    // 完整参数示例
    wp_nav_menu(array(
    'theme_location' => 'primary',
    'menu' => '',
    'container' => 'nav',
    'container_class' => 'main-navigation',
    'menu_class' => 'nav-menu',
    'fallback_cb' => false,
    'depth' => 2,
    'walker' => new Custom_Walker_Nav_Menu() // 自定义Walker
    ));

五、高级链接操作

  1. 分页链接

    // 文章分页(使用 <!--nextpage--> 时)
    wp_link_pages(array(
    'before' => '

    ',
    'pagelink' => '%'
    ));

    // 文章列表分页(存档页)
    echo paginate_links(array(
    'total' => $wp_query->max_num_pages,
    'current' => max(1, get_query_var('paged')),
    'prev_text' => '<< 上一页',
    'next_text' => '下一页 >>'
    ));

  2. 自定义查询链接

    // 添加查询参数生成链接
    echo add_query_arg('view', 'list', get_permalink());
    // 输出: https://wodepress.com/page-name/?view=list

    // 多参数
    echo add_query_arg(array(
    'view' => 'grid',
    'sort' => 'price'
    ), get_permalink());

  3. 去除URL中的协议头

    // 获取无协议URL(避免混合内容警告)
    echo esc_url(home_url('/', 'relative')); // //wodepress.com/

六、REST API获取链接

通过API获取各类链接

复制代码
// 获取站点信息(包含首页链接)
fetch('/wp-json/')
  .then(res => res.json())
  .then(data => console.log(data.home));

// 获取文章列表(包含permalink)
fetch('/wp-json/wp/v2/posts')
  .then(res => res.json())
  .then(posts => {
    posts.forEach(post => {
      console.log(post.link);        // 文章链接
      console.log(post.guid.rendered); // 固定链接
    });
  });

七、最佳实践建议

始终使用API函数:不要硬编码URL,使用home_url(),site_url()等函数

转义输出:使用esc_url()函数包裹链接输出,防止XSS攻击

使用相对协议://wodepress.com可自动适配HTTP/HTTPS

缓存菜单:大型站点的复杂菜单建议缓存或使用Transients

这些方法覆盖了WordPress开发中99%的链接调用场景,wordpress模板开发过程中最常用到的,掌握了这些,基础的wordpress模板开发足够用了。

原文

https://www.jianzhanpress.com/?p=9273

相关推荐
e6zzseo3 天前
wordpress独立站seo怎么做才有效
seo·wordpress·独立站·内容优化·外链建设
Web极客码5 天前
如何让用户订阅WordPress评论?提升用户互动的有效策略
运维·服务器·wordpress
fobwebs5 天前
Wordpress Xstore 主题安装Elementor Pro 后找不到某些Elements 组件的解决方法
element·wordpress·form·xstore·pro elements·elementor pro
代龙涛6 天前
WordPress sidebar.php 侧边栏开发教程
开发语言·php·wordpress
代龙涛7 天前
WordPress header.php 与 footer.php 模板结构详解
开发语言·php·wordpress
Web极客码12 天前
如何在WordPress中添加动态内容
服务器·前端·wordpress
tommyjiatong15 天前
WordPress电商展示站服务器迁移指南
服务器·数据库·wordpress
IT大白鼠17 天前
WordPress组合漏洞wp2shell技术分析报告
wordpress·安全漏洞·wp2shell 漏洞
Markk19 天前
Wordpress及第三方支持工具docker容器化搭建
wordpress
Web极客码24 天前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress