将Wordpress Post ID传递到另一页


Pass Wordpress Post ID To Another Page

嘿,我要解释一下我想让这段代码做什么。希望有比我更聪明的人能帮我清理并整理好。

我想完成的总体目标:

我在wordpress页面上有一个图像,当它被点击时,它将在该页面的div中打开一个自定义php文件,该文件显示基于帖子ID的特定wordpress帖子。

试图让剧本发挥作用,但有些事情我不确定如何正确组合。

这就是我现在拥有的:

图片链接本质上是传递我想在div中加载的帖子的URL。所以我需要的第一件事是脚本获取帖子的URL并获得帖子ID,这样自定义页面就可以使用它。

First Line从图像链接中获取链接。第二行将从URL获取帖子ID。不确定这是否100%正确。不确定变量是否会这样工作?如果我手动输入url,它可以在页面上工作。

var post_link = $(this).attr("href");
$post_id = url_to_postid($post_link);

这就是我对整件事的看法:(不起作用,只是我试图实现的一个例子)

<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($){
    $.ajaxSetup({cache:false});
    $("a.ajax").click(function(){
        var post_link = $(this).attr("href");
        $post_id = url_to_postid($post_link);
        $("#tabs").html("loading...");
        $("#tabs").load(custom-page.php);
        return false;
    });
});
</script>

我不确定传递id变量的最佳方式,以便自定义php页面可以使用它在div中加载该帖子。这一部分缺失了。

我发现了如何通过反复试验来实现这一点。因此,如果有人发现并需要它,它就在这里。

图像链接:

-类告诉脚本这是链接。你将为href投递一段邮件。

<a href="SlugOfPostGoesHere" class="ajax" </a>

在同一页面上,这个Div将从脚本加载自定义php页面:

<div id="tabs">
</div>

页眉中的脚本:

-从href中提取段塞并创建变量。(在这种情况下是postslog)

-加载时在div#选项卡中加载"loading…"。

-在同一页面的div#选项卡中加载自定义php页面,并将变量附加到url。(你不会在浏览器中看到这个)

-滚动到页面顶部。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($){
    $.ajaxSetup({cache:false});
    $("a.ajax").click(function(){
        var postslug = $(this).attr("href")
        $("#tabs").html("loading...");
        $("#tabs").load("../custom-page.php?slugid=" + postslug);
        $("html, body").animate({ scrollTop: 0 }, 600);
        return false;
    });
});
</script>

然后在您的自定义PHP页面上,您需要放置:

<?php require( "wp-load.php" ); ?> 

(或者指向wordpress页面的任何路径,以便您可以使用wp功能)

还有这个代码,从你在URL中传递的消息中获取帖子的ID:

-First Line从url中的变量slugid中获取post slug,并将其设置为变量$slug。

-第二行从slug创建完整的URL。

-第三行提供了来自url的帖子ID。

<?php
$slug = $_GET['slugid'];
$url = ("http://www.yourwebsite.com/" .$slug);
$postid = url_to_postid($url);
?> 

现在,您可以对页面进行编码,使用帖子ID来加载您想要的内容。