如何使用php将html内容添加到自定义帖子类型的帖子中?

时间:2020-04-30 作者:sansae

我正在尝试做一些我确信很基本的事情,但我不知道怎么做。

设置如下:我使用CPT UI插件创建了一个名为board_docs, 我使用自定义字段插件为board\\u docs帖子类型创建了一个自定义字段。自定义字段允许您将文件添加为附件。添加此文件后,将创建一个新的永久链接(post)。当我点击永久链接时,页面是空的,只有页眉和页脚。How would I add an iframe (and other html content) to that page using php?

我尝试在函数中使用循环have\\u posts。php文件,但没有显示任何内容。我的代码如下所示:

if ( have_posts() ) :
  while ( have_posts() ) : the_post();
    echo "<script>console.log(\'from functions.php!!!\');</script>";

    ob_start(); ?>
    <div class="my-pdf-viewer">
      <p>[iframe here]</p>
    </div>
    <?php ob_get_clean();
  endwhile;
endif;
我尝试使用is\\u single,但仍然没有:

if ( is_single(883) ) {// have_posts etc...}
控制台。日志工作正常,我看到日志打印到控制台,用于特定帖子,但仅此而已。我不知道如何显示html内容。

我目前有一个名为Board Docs的页面,其中显示了每篇文章的永久链接。当用户单击每个链接时,它会将他们带到我想要显示html内容的空白页面。我将如何使用php做到这一点?

UPDATE几天前,我找到了这个方便的资源,我只想与其他可能正在努力寻找合适的钩子的人分享它。https://adambrown.info/p/wp_hooks/hook

而且hooks. 我希望有人能在我刚开始的时候向我解释一下这些是什么。如果您正在进行任何自定义WordPress开发,了解它们很重要。快乐的编码。

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

在搜索wordpress文档后,我找到了我需要的东西。我缺少的是一个叫做“the\\u content”的钩子。我的函数以及我在其中编写的所有代码都是正确的。我只需要这个愚蠢的钩子。

function displayIframe($content) {
  //[my code to get the $currentPostID and $currentPostGuid]

  //...
  //...

  if (is_single( $currentPostID )) {// if on the specific custom post page
    $content .= "<iframe src=\'" . esc_html($currentPostGuid)  . "\' width=100% height=900></iframe>";
  }

  return $content;
}

function main() {
  // the_content hook was what I needed; I had no idea it existed
  add_filter("the_content", __NAMESPACE__ . "\\displayIframe");
}

我希望这对其他人有帮助。好运:)

相关推荐

Attachments without images

我正在使用Attachments 插件,但我相信这个问题适用于常规媒体库。我想做的是有一个“附件”(元数据、标题、标题),但没有与之关联的图像。原因是,我想将附件视为“项目项”,可以是图像或文本块。这可能吗?