将Wordpress帖子ID传递给另一个页面

时间:2014-04-15 19:36:25

标签: javascript php jquery ajax wordpress

嘿,我将解释我正在寻找的代码。希望比我更聪明的人可以帮助清理它并把它放在一起。

我想要完成的事情:

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

尝试让脚本工作,但有些事情我不确定如何正确组合。

这就是我现在所拥有的:

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

第一行从图像链接获取链接。第二行将从URL获取帖子ID。不确定这是否100%正确。不确定变量是否会像那样工作?如果我手动输入网址,它就适用于页面。

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中的帖子。那部分遗失了。

1 个答案:

答案 0 :(得分:1)

我想出了如何通过反复试验来实现这一目标。所以在这里,如果有人发现这一点并需要它。

图片链接:

-class告诉脚本这是链接。你会把帖子塞进href。

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

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

<div id="tabs">

</div>

标题中的脚本:

-Pulls slug from href并创建变量。(在这种情况下为postslug)

- 加载时在div #tabs中加载“loading ...”。

- 在同一页面的div #tabs中加载自定义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中传递的slug中获取帖子的ID:

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

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

- 第三行为您提供来自网址的帖子ID。

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

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

相关问题