根据页面post_id显示我的插件内容

时间:2013-11-02 作者:Russ

我创建了一个插件,它的前端内容位于一个名为showmap的文件中。php,我目前有一个包含showmap内容的短代码。php在页面上放置短代码。

除了短代码之外,我还创建了一个选项,允许用户选择一个包含内容的页面。原因是我有一个需要发布到该页面的搜索小部件,所以我必须有一种方法来检测它。

$db_showmap_options = get_option( \'db_showmap_options\' );
$chosen_page = $db_showmap_options[\'page_id\'];
如何检测所选页面并包含showmap。php?我需要考虑永久性吗。恐怕我真的迷路了。

提前感谢您的帮助。

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

如何做到这一点可能或多或少有点困难,这取决于内容应该包含在页面中的什么位置,您没有解释这一点,但假设您将其包含在帖子正文中。。。

add_filter(
  \'the_content\',
  function($content) {
    global $post;
    $db_showmap_options = get_option( \'db_showmap_options\' );
    if (!empty($db_showmap_options[\'page_id\']) && $post->ID == $db_showmap_options[\'page_id\']) {
      $content = "whatever you need to do".$content;
    }
    return $content;
  }
);
未经测试,但我相当肯定这会起作用。

您可能需要output buffering, 取决于您的showmap.php 已写入。

结束

相关推荐

Security and Must Use Plugins

从codex article 必须使用插件:只需将文件上载到mu插件目录即可启用,无需登录我觉得这是一个潜在的安全问题。在站点上运行插件中的任何代码之前,必须通过管理面板激活常规插件。我一直认为这是一个明智的安全预防措施,因为攻击者如果能够以某种方式将文件上载到plugins文件夹,则在运行代码之前,还必须访问和修改数据库。这个mu-plugins 文件夹似乎提供了一种简单的方法来避免这种情况。我知道WordPress开发人员比我更了解安全性,所以我想知道是否有人能解释为什么这不是一个安全漏洞。