我只是记录这一点,因为它真的让我很难过,现在我与世界和平相处......至少这个世界。
欺骗固定链接
如何使您有多个网址转到同一页面,以使您的 wordpress 网站看起来像一个 SAP。
意思是类似的网址
http://www.asdf.com
http://www.asdf.com/about
解析到相同的 url,然后用 JS 你可以用 JavaScript 做一些花哨的事情。
代码
使用 add_rewrite_rule 将 url 重写为页面部分的主页。我的函数文件中的以下脚本也使用高级自定义字段动态编写规则,但这仅用于此实现。
<?php
add_action('init', 'all_pages_home');
function all_pages_home()
{
add_rewrite_rule(
'home',
'index.php',
'top'
);
add_rewrite_rule(
'about-us',
'index.php',
'top'
);
add_rewrite_rule(
'about',
'index.php',
'top'
);
add_rewrite_rule(
'portfolio',
'index.php',
'top'
);
add_rewrite_rule(
'team',
'index.php',
'top'
);
add_rewrite_rule(
'our-team',
'index.php',
'top'
);
add_rewrite_rule(
'contact',
'index.php',
'top'
);
add_rewrite_rule(
'press',
'index.php',
'top'
);
// custom rewrites for all team members
// this accesses ACF and dynamically writes these out based on a field url_path
$team_members = get_post_meta( 359, 'section_team', true );
if( $team_members ):
for( $i = 0; $i < $team_members; $i++ ) {
$url_path = esc_html( get_post_meta( 359, 'section_team_' . $i . '_url_path', true ) );
if($url_path <> ''):
add_rewrite_rule(
$url_path,
'index.php',
'top'
);
endif;
}
endif;
flush_rewrite_rules();
}
在 Javascript 文件中,您可以执行类似的操作
<script type="text/javascript">
var pathName = window.location.pathname;
var pathNameClean = replaceAll(pathName, '/', '' );
var isTeamMember = true;
var arrSections = ['home','about-us','about','portfolio','team','contact','press'];
for (i = 0; i < arrSections.length; i++) {
if(arrSections[i] === pathNameClean){
isTeamMember = false;
break;
}
}
</script>
然后
<script type="text/javascript">
var anchorHref = '#' + pathNameClean;
$('html, body').stop().animate({
scrollTop: $(anchorHref).offset().top - 64
}, 1500, 'easeInOutExpo');
</script>
这将滚动到页面中的正确位置
现在它一下子变得有点古怪和混乱。
第 1 步:转到您的固定链接。
设置为帖子名称
保存更改...
第 2 步:下载您的 .htaccess 文件。
第 3 步:将永久链接更改为普通链接
第 4 步:上传您创建的 .htaccsss 文件。
重要!!!!
不要更新您网站上的永久链接!