首页 > 解决方案 > 我将如何在 wordpress 中构建这个 url 功能

问题描述

我在 Wordpress 中尝试做的是从电影数据库 API 导入电影数据,并将其显示在 wordpress 站点中。我只是无法弄清楚在后端使用干净的 url 结构进行设置的最佳方法是什么。

我创建了一个模板文件,它会有一个带有电影标题的 GET 变量。我希望我的域看起来像

mydomain.com/movie/TITLEGOESHERE

我怎么能通过 wordpress 设置它,所以我创建的页面就是这样工作的。

这不会从 wordpress 内部提取帖子数据。htaccess 可以在这里工作吗?

编辑:我现在用脏网址思考它的方式是 mydomain.com/pagewithAPIcode/?movie=MOVIETITLE,这样我可以将 MOVIE TITLE 作为 GET 变量获取,然后将其传递给 api 以获取外部电影信息。然后用 htaccess 重写它,让它看起来更好

标签: wordpressrest

解决方案


在以下代码中,mvtitle添加了一个查询变量,其中电影标题可用。还创建了一个重写规则,该规则对于匹配movie/{some-title}方案的地址显示页面movie(帖子类型page)。读取mvtitle使用get_query_var()函数的值。

add_filter( 'query_vars', 'so59386348_query_vars' );
add_filter( 'page_rewrite_rules', 'so59386348_page_rewrites' );

function so59386348_query_vars( $vars )
{
    $vars[] = "mvtitle";
    return $vars;
}
function so59386348_page_rewrites( $rewrite_rules )
{
    $page_slug = 'movie';
    $rewrite_rules["$page_slug/([^/]+){1}/?$"] = 'index.php?pagename='.$page_slug.'&post_type=page&mvtitle=$matches[1]';
    return $rewrite_rules;
}
$title = get_query_var( 'mvtitle', FALSE );
echo 'Movie title: ' . $title;

推荐阅读