致命错误:使用AJAX调用未定义的函数get_post()

时间:2015-03-25 作者:user3003810

我有一个index.php 带有about链接的页面,可以从WordPress仪表板中创建的名为about的页面(帖子)获取作者内容。我正在使用Magnific Popup poups插件。我有about.php 其中包括以下关于页面的内容:

<?php 
  $pageid = 2; // 2 is the id of about page/post
  $about = get_post($pageid);
?>

<div id="custom-content" class="white-popup-block" style="max-width:600px; margin: 20px auto;">

    <h3><?php echo $about->post_title; ?></h3>
    <style>
    #custom-content img {max-width: 100%;margin-bottom: 10px;}
    </style>
    <div class="image-container pull-left">
        <img src="<?php echo get_field( "image", $pageid ); ?>">
    </div>
    <h4><?php echo get_field( "brief", $pageid ); ?></h4>
    <p>
    <?php echo get_field( "brief_lines", $pageid ); ?>
    </p>
    <div class="about-content">
        <?php echo $about->post_content; ?>
    </div>
</div>
并且在index.php

<a href="<?php echo get_template_directory_uri(); ?>/about.php" class="morelink pull-left text-ajax-popup">read more</a>
footer.php

$(\'.text-ajax-popup\').magnificPopup({
  type: \'ajax\',
  alignTop: true,
  overflowY: \'scroll\' 
});
单击链接后,我出现以下错误:

致命错误:调用未定义的函数get\\u post()

里面有文件吗about.php? 问题是什么?

1 个回复
最合适的回答,由SO网友:Howdy_McGee 整理而成

问题是about.php 不是WordPress识别的文件,不会加载任何实际的WordPress函数。<?php wp_header(); ?> 在您的主题中header.php 文件实际上加载了您习惯使用的大多数WordPress功能。既然你也不打电话get_header()wp_header() 在您的about.php 您实际上无权访问任何WordPress功能。解决这个问题的一个方法是在你的帖子顶部添加一个核心WordPress文件,这样你就可以访问:

此文件:require(\'/wp-blog-header.php\');

所需文件位于WordPress的根目录中,位置与wp-config.php - 我相信这会满足你的需要。

以下是Recognized Template Files.

但是应该怎么做

正在寻找使用内置的方法wp_ajax 获取页面并将其返回的功能。那么就没有额外的文件了,不需要wp-blog-header.php 它的挂钩/功能将方便地定位在您的主题中functions.php 文件

结束