主页/WordPress笔记/博客文章/综合文章/如何从WordPress URL中移除日期

如何从WordPress URL中移除日期

Bug编译狮

Bug编译狮

在WordPress中,你可以通过修改模板文件或使用插件来去除URL中的日期部分。以下是两种方法的详细说明和示例代码。

方法一:使用函数去掉URL中的日期

步骤:

  1. 打开你的WordPress主题目录下的functions.php文件。
  2. 在文件中添加以下代码:
function remove_date_from_url() {
    add_filter('the_permalink', 'remove_date_from_permalink');
}
add_action('after_setup_theme', 'remove_date_from_url');

function remove_date_from_permalink($permalink) {
    $date = get_the_time('U'); // 获取当前时间戳
    if (isset($_GET['year']) && isset($_GET['monthnum'])) { // 检查是否有年份和月份参数
        $date = $date + strtotime("+" . ($_GET['year'] - 1900) . " years, +" . $_GET['monthnum'] . " months"); // 计算对应日期
    }
    return str_replace('/' . date('Y/m/d') . '/', '/', $permalink); // 替换掉日期部分
}
  1. 保存并关闭文件。

效果:

这个方法会在每次访问页面时都会自动去除URL中的日期部分。当用户点击链接跳转到文章详情页时,URL中的日期也会被删除。

方法二:使用插件去掉URL中的日期

步骤:

  1. 登录WordPress管理后台。
  2. 进入“插件”菜单。
  3. 点击“添加新插件”,搜索并安装“Remove Date From Permalink”插件。
  4. 安装完成后,激活该插件。
  5. 使用插件设置界面配置选项,通常可以在“自定义标题”字段输入新的URL格式(例如/post-title),然后点击“应用”。

效果:

启用此插件后,WordPress会自动在URL中去除日期部分。当你创建了一个新帖子,插件会自动更新URL以不包含日期信息。

示例代码说明

  • get_the_time('U'): 这个函数获取当前时间戳,用于计算特定日期的时间戳。
  • strtotime("+" . ($_GET['year'] - 1900) . " years, +" . $_GET['monthnum'] . " months"): 根据用户提供的年份和月份参数,计算出对应的日期时间戳。
  • str_replace('/' . date('Y/m/d') . '/', '/', $permalink): 将原始的URL替换为不含日期的部分的新URL。

这种方法简单易用,适用于大多数WordPress主题和插件环境。

黑板前的Bug语法讲师

黑板前的Bug语法讲师

在这个教程中,我将向您展示如何使用WordPress插件或自定义函数来从URL中移除日期部分。

首先,我们需要安装一个名为date剩餘的插件。这个插件可以帮助我们从URL中删除日期和时间信息。

  1. 安装日期剩餘插件:

    在WordPress后台,转到“插件” > “管理” > “搜索并安装插件”。

  2. 导航至插件列表页面,然后找到“日期剩餘”插件。

  3. 单击插件图标,然后点击“安装”。

  4. 安装完成后,登录您的WordPress帐户,转到“插件” > “启用”以激活此插件。

接下来,我们将编写一个简单的PHP函数,用于删除日期和时间从URL中。

示例代码

function remove_date_from_url($url) {
    // 使用正则表达式匹配日期字符串
    $pattern = '/(d{4})-(d{2})-(d{2})T(d{2}):(d{2}):(d{2})(?::(d{2}))?/';

    if (preg_match($pattern, $url, $matches)) {
        // 删除日期部分
        $url = preg_replace('/' . $pattern[0] . '/', '', $url);

        return $url;
    }

    return $url; // 如果没有找到日期,返回原始URL
}

// 示例用法
$url = 'http://example.com/2023-07-15 12:30';
$cleaned_url = remove_date_from_url($url);

echo $cleaned_url; // 输出:http://example.com/2023-07-15 12:30

解释代码

  • $pattern:这是一个正则表达式,用于匹配日期和时间字符串。
  • preg_match():用于查找匹配模式的字符串。
  • preg_replace():用于替换匹配的文本。
  • $matches:存储了所有匹配的组(如月份、日期等)。
  • remove_date_from_url():处理URL中的日期和时间部分。

这个函数可以轻松地应用于任何需要从URL中移除日期和时间的场景。例如,在博客文章的URL中,我们可以移除日期部分以便只显示正文。

请注意,这种方法可能会导致一些不希望看到的内容出现在URL中,因此在实际应用中应谨慎使用。