我有一页/video
它上面运行着一个javascript应用程序。javascript读取url片段并加载视频。ie/video/my-first
将加载标题为“我的第一个”的视频。
我的问题是permalinks。WordPress识别多片段url并尝试查找匹配项。我已配置add_rewrite_rule
跳过任何内容^video
这对现场很好。
我实际上需要任何url/video
路由到同一位置/video
, /video/one
, /video/35
或/video/really-really-long-slug-with-trailing-slash/
. url必须保留,因为我的javascript需要知道slug才能正常工作。
我重写的问题是,Google似乎在此处重新定向,并且不会获取呈现的页面。它将其列为301,永久重定向。
Googlebot type: Desktop (render requested)
Redirected on Tuesday, April 10, 2018 at 4:01:40 AM PDT
我不是WordPress开发人员(我编写了javascript应用程序),所以我希望有一种方法可以将视频页面从永久链接中排除。目前它是一个WordPress页面实体,但我在主题中使用一个php页面并通过菜单直接链接到它没有问题。
SO网友:Oleg Butuzov
这是一个复杂的问题。首先,从没有javascript和google机器人的用户的角度来看,它的工作“正常”。我建议以不同的方式解决此问题,而不是使用页面和子页面:
创建,不是页面,而是post type video
具有以下特点:
非公开的可公开查询的无重写的添加查询规则
add_action( \'init\', function() {
add_rewrite_rule( \'^videos/?\', \'index.php?post_type=video\', \'top\' );
});
<添加自定义解析查询筛选器
add_action( \'init\', function(){
if ( is_admin() )
return;
add_filter( \'parse_query\', function( WP_Query $wp_query) : WP_Query {
if ( \'video\' === $wp_query->get(\'post_type\')) {
$wp_query->set(\'nopaging\', true);
}
return $wp_query;
});
});
完成了。嗯,还没做完。您需要在页面应用程序上为视频生成一些数据属性。