我想创建一个新的WordPress页面,它实际上是指向另一个站点的链接.目标是让页面显示在我的页面列表中,但实际上是将Web用户发送到目标URL.
例如,假设我想要包含一个指示"我的照片"的页面,但实际上将它们重定向到Flickr.
我猜测实现这一目标的一种方法是在PHP中使用带有重定向指令的自定义模板页面,但遗憾的是我是PHP的新手并且不熟悉实现此目的的方法...
Sch*_*man 45
您可以通过两种方式完成这两种方式,这两种方式都需要通过编辑模板文件来完成.
第一个是在你希望它出现的地方添加一个html链接到你的导航.
第二个(我的猜测,你正在寻找的那个)是创建一个新的页面模板,如果你能够在你的主题/模板目录中创建一个新的.php文件,这个模板并不太难.像下面的代码应该做的事情:
<?php /*
Template Name: Page Redirect
*/
header('Location: http://www.nameofnewsite.com');
exit();
?>
Run Code Online (Sandbox Code Playgroud)
模板名称也是您想要设置的名称,标题函数中的url是您要引导用户的新URL.修改上述代码以满足您的需要后,将其保存在活动主题文件夹中的php文件中,并保存到模板名称中.因此,如果您将模板名称"页面重定向"保留为php文件页面-redirect.php.
保存完毕后,登录到WordPress后端,然后创建一个新页面.如果您愿意,可以向主体添加标题和内容,但需要注意的重要一点是,在右侧,应该有一个下拉选项供您选择要使用的页面模板,默认显示第一.在该下拉列表中,应该有要使用的新模板文件的名称.选择新模板,发布页面,你应该是金色的.
此外,您还可以使用正文编辑器下方的"自定义字段"部分动态执行此操作.如果您有兴趣,请告诉我,我可以在新的回复中粘贴该人的代码.
Jas*_*lle 11
我发现这些问题通常最好在服务器层解决.您是否可以访问.htaccess文件,您可以在其中放置重定向规则?如果是这样:
RedirectPermanent /path/to/page http://uri.com
Run Code Online (Sandbox Code Playgroud)
此重定向还将提供"301 Moved Permanently"响应,以指示Flickr页面(例如)是旧页面的永久URI.
如果无法做到这一点,您可以为每个相关页面创建一个自定义页面模板,并将以下PHP代码添加到页面模板的顶部(实际上,这就是模板中所需的全部内容:
header('Location: http://uri.com, true, 301');
Run Code Online (Sandbox Code Playgroud)
或者,使用过滤器.
在WordPress博客中创建一个空白页面,根据您的需要适当命名.记下post_id.然后创建一个更改其永久链接的过滤器.
add_filter('get_the_permalink','my_permalink_redirect');
function my_permalink_redirect($permalink) {
global $post;
if ($post->ID == your_post_id_here) {
$permalink = 'http://new-url.com/pagename';
}
return $permalink;
}
Run Code Online (Sandbox Code Playgroud)
这样,网址将在页面中正确显示,不需要有趣的重定向.
如果你需要做很多事情,那么考虑使用自定义postmeta字段为"offsite_url"或类似的东西定义postmeta值,然后你可以根据需要创建页面,输入"offsite_url"值然后使用过滤器像上面的那个,而不是检查post_id,你检查它是否有所需的postmeta,并根据需要更改永久链接.
我不熟悉 Wordpress 模板,但我假设在您的模板加载之前,WP 将标题发送到浏览器。因此,常见的重定向方法为:
header("Location: new_url");
Run Code Online (Sandbox Code Playgroud)
不会工作。除非有一种方法可以在 WP 执行任何操作之前强制通过模板发送标头,否则您需要使用一些 Javascript,如下所示:
<script language="javascript" type="text/javascript">
document.location = "new_url";
</script>
Run Code Online (Sandbox Code Playgroud)
将其放在该部分中,它将在页面加载时运行。这种方法不是即时的,它也不适用于禁用 Javascript 的人。
归档时间: |
|
查看次数: |
111157 次 |
最近记录: |