所以目前我正在使用pod为日志创建一些单独的页面,其中填充了自定义内容。
现在我想为每个页面使用评论系统,例如:
mydomain.com/podpages/page1
mydomain.com/podpages/page2
mydomain.com/podpages/page3
这不是用 wordpress 创建的页面,所以简单地添加<?php comments_template(); ?>
是行不通的。
任何想法如何解决这个问题?提前致谢
如果有不清楚的地方,请发表评论:)
当评论存储在 WordPress 数据库中时,评论相关的帖子(或页面)的 ID 也会被存储。
麻烦的是,您正在尝试使用 WordPress 保存评论,但是对于它实际上并不知道的页面。
那么,我们如何为每个真实页面创建一个WordPress页面,但仅作为一种表示,以便您的真实页面和 WordPress 有共同的基础来相互合作。
所以,这里的计划是;
此代码应位于用于呈现“真实”页面的模板文件的开头;
include ('../path/to/wp-load.php');
// remove query string from request
$request = preg_replace('#\?.*$#', '', $_SERVER['REQUEST_URI']);
// try and get the page name from the URI
preg_match('#podpages/([a-z0-9_-]+)#', $matches);
if ($matches && isset($matches[1])) {
$pagename = $matches[1];
// try and find the WP representation page
$query = new WP_Query(array('pagename' => $pagename));
if (!$query->have_posts()) {
// no WP page exists yet, so create one
$id = wp_insert_post(array(
'post_title' => $pagename,
'post_type' => 'page',
'post_status' => 'publish',
'post_name' => $pagename
));
if (!$id)
do_something(); // something went wrong
}
// this sets up the main WordPress query
// from now on, WordPress thinks you're viewing the representation page
}
更新
我不敢相信我这么愚蠢。下面应该替换外部的当前代码if
;
// try and find the WP representation page - post_type IS required
$query = new WP_Query(array('name' => $pagename, 'post_type' => 'page'));
if (!$query->have_posts()) {
// no WP page exists yet, so create one
$id = wp_insert_post(array(
'post_title' => $pagename,
'post_type' => 'page',
'post_status' => 'publish',
'post_name' => $pagename,
'post_author' => 1, // failsafe
'post_content' => 'wp_insert_post needs content to complete'
));
}
// this sets up the main WordPress query
// from now on, WordPress thinks you're viewing the representation page
// post_type is a must!
wp(array('name' => $pagename, 'post_type' => 'page'));
// set up post
the_post();
PS 我认为使用 query_var name
overpagename
更适合 - 它查询 slug,而不是 slug 的“路径”。
您还需要在表单中放置一个输入,其中包含redirect_to
您想要重定向到的 URL 的名称和值,或者,使用挂钩的函数过滤重定向comment_post_redirect
,返回正确的 URL。
添加
require('/path/to/wp-blog-header.php');
包括 wp 文件。这应该为您提供所需的所有功能/数据。
您可以在 wordpress 中创建显示您的日志数据的页面吗?为此,您可能需要一个新模板。然后 WordPress 将有一些东西可以将评论连接到。
您需要为此使用 WordPress 吗?如果没有,也许这个 SO 问题中的某些内容会有所帮助:Unobtrusive, self-hosted comments function to put on existing web pages
只需为 wordpress-comment-part 提供一个新 ID - 从您通常的帖子永远无法到达的内容开始(100.000+ 是您的页面,即)
我不确切知道在 wordpress 中它是否是一个函数(saveComment ie),但如果是这样,只需在您的页面中使用它和他的自定义 ID。不过,您必须自己插入评论表单。
并且不要忘记修改获取超过 100.000 的 ID 不是条目的新闻条目的查询。
或者您可以编写自己的模板来显示 ID < 100.000 的标准 Worpress-stuff,或者您的页面。
总结起来,应该不是很难。
ps:如果您只想使用wordpress-login,请使用任何评论系统或自己制作(这是一个1小时的事情)并验证/使用worpress-session。