所以目前我正在使用pods为日志创建一些单独的页面,并填充自定义内容。
现在我想对每个页面使用评论系统,例如:
mydomain.com/podpages/page1
mydomain.com/podpages/page2
mydomain.com/podpages/page3
这是使用wordpress创建的不页面,因此只是添加<?php comments_template(); ?>
无效。
任何想法如何解决这个问题? 提前谢谢
如果不清楚,请发表评论:)
答案 0 :(得分:11)
当评论存储在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();
P.S我认为在name
上使用query_var pagename
更适合 - 它会查询slug,而不是slug'path'。
您还需要在名称为redirect_to
的表单中放置一个输入,并将您要重定向到的网址的值设置为或,过滤重定向一个挂钩到comment_post_redirect
的函数,返回正确的URL。
答案 1 :(得分:0)
添加
require('/path/to/wp-blog-header.php');
包含wp文件。这应该为您提供所需的所有功能/数据。
答案 2 :(得分:0)
您可以在wordpress中创建显示日志数据的页面吗?您可能需要一个新模板。然后,WordPress将有一些东西将评论连接到。
答案 3 :(得分:0)
只需提供带有新ID的wordpress-comment-part - 从您通常的帖子永远不会到达的内容开始(100.000+是您的页面,即。)
我不确切地知道在wordpress中它是否是一个函数(saveComment ie),但如果是这样的话,只需在你的页面中使用自定义ID即可。 但您必须自己插入评论表格。
不要忘记修改获取新闻的查询 - 超过100.000的ID不是条目。
或者您可以编写自己的模板,显示ID为&lt;标准Worpress-stuff; 100.000,或者你的页面。
总结一下,这应该不是很困难。
p.s。:如果您只想使用wordpress-login,那么请使用任何评论系统或制作您自己的(这是1小时)并验证/使用worpress-session。
答案 4 :(得分:0)
你需要使用WordPress吗?如果没有,也许这个SO问题中的某些内容有助于:Unobtrusive, self-hosted comments function to put onto existing web pages