定制wordpress页面
我想在wordpress中实现一个定制的帖子检索页面。基本上,我使用AJAX调用此页面,该页面将传递一个帖子ID并从该帖子中检索某些数据。定制wordpress页面
注意:请不要将此误认为是模板问题。我不希望为单个页面创建模板 - 我希望根据postID使此页面查询多个不同的帖子,并返回该帖子中的某些数据。
所以,我试图创建一个页面
<?php
$args=array(
'p'=>'77'
);
$friends = new WP_Query($args);
?>
<?php if ($friends->have_posts()) : the_post(); ?>
<?php the_title(); ?>
<?php the_content(); ?>
<?php else: ?>
<p>Sorry, no posts are available.</p>
<?php endif; ?>
但因为它不是在wp功能加载到处理查询这不起作用。
在此先感谢您的帮助!
你必须包含wp-blog-header.php文件。如果您正在创建的页面在你的主题文件夹,那么你会把这样的事情在你的代码
<?php require_once ('../../../wp-blog-header.php');?>
我想,我猜你正在尝试做的顶部,这听起来像你去错误的方式。不要在管理界面中创建一个“新页面”。你想要做的是向你的Javascript提供一个文件(JSON,XHTML片段,不管),并在其中包含WP数据,对吧?我知道这个问题,在我的一些插件中使用过它。
有两种技术:
(1)这是你需要做的:做一个新的插件(只是在WP-插件宽松的PHP文件在同一格式标题为其他插件那里)。写你的函数沿着这些线路:
function mydatapage(){
if (...$_SERVER['REQUEST_URI'] == the one I am using ...) {
$args=array(
'p'=>'77'
);
$friends = new WP_Query($args);
if ($friends->have_posts()) :
the_post();
the_title();
the_content();
else:>?
<p>Sorry, no posts are available.</p>
<?php endif;
die();
} //else do nothing and leave WP to serve the page normally
}
//Crucially:
add_action('init', 'mydatapage');
什么,做是做一个查询页面时加载,看看是否URL匹配要劫持和使用发送自定义的数据之一。如果是这样,你发送数据/文件/任何你想和退出(死)。
如果您想要更详细的语法,请留言。这有点乱,但效果很好。
(2)直接调用您的插件文件。 WP只会处理尚不存在的文件,剩下的则留给Apache。这意味着你可以创建一个插件文件并直接使用.../wp-plugin/myfile.php url进行调用。您需要包含一些WP核心文件才能使WP_Query等工作起作用。这种方法稍微脆弱一点。