我正在尝试将自定义cms模块修改为WordPress插件。
该插件仅由管理部分组成。访问者看到的部分是通过嵌入PHP代码的常规WordPress页面加载的。这工作正常。
对于管理部分,我在插件目录中创建了一个单独的文件夹,其中包含两个 PHP 文件。插件被激活,菜单项正确加载。但是,我遇到的问题是加载了插件的管理内容A)在每个wordpress管理页面中,以及B)一直到页面顶部。整个管理菜单位于我放在内容周围的包装类下方。
对于 A)我想我应该告诉插件只在自己的页面上加载,但我不知道怎么做。对于 B) 我的猜测是我应该告诉插件在哪里插入内容(使用钩子?),但我也不知道如何插入。这是我第一次尝试构建插件。我已经在许多网站上阅读了有关如何编写插件的信息,但我就是无法正确理解。
这两个 PHP 文件:
- 主插件文件:verkoopstatus-admin.php(我省略了插件模板信息部分):
Pastebin verkoopstatus-admin.php
- 插件的内容部分:verkoopstatus.php
Pastebin verkoopstatus.php
谁能告诉我我在这里错过了什么?
<?php
/*
if($include_flag == 1)
{
*/
function showHome($project)
{
$home_query = mysql_query("SELECT * FROM mod_verkoopstatus WHERE project = '$project'") or die(mysql_error());
while($home_info = mysql_fetch_object($home_query))
{
if($home_info->status == 1)
{
$color = '#2E2EFE';
}
if($home_info->status == 2)
{
$color = '#3E8028';
}
if($home_info->status == 3)
{
$color = '#F26A20';
}
if($home_info->status == 4)
{
$color = '#F1F121';
}
echo '<a target="_self" href="http://localhost/abc/wp-admin/admin.php?page=Verkoopstatus'.$home_info->project.'&nr='.$home_info->nr.'">';
echo '<div style="position: absolute; border: 1px solid black; margin-left: '.$home_info->left.'px; margin-top: '.$home_info->top.'px; height: '.$home_info->height.'px; width: '.$home_info->width.'px; background-color: '.$color.'"><p style="padding-top: 0px; margin-top: 0px;" align="center">'.$home_info->nr.'</p></div>';
echo '</a>';
}
}
上面一段的最后一个括号应该在你的文件的末尾(在div end .wrap之后)
我认为更好的是
function showHome($project)
{
$out = '';
$home_query = mysql_query("SELECT * FROM mod_verkoopstatus WHERE project = '$project'") or die(mysql_error());
while($home_info = mysql_fetch_object($home_query))
{
switch ( $home_info->status ) {
case 1:
$color = '#2E2EFE';
break;
case 2:
$color = '#3E8028';
break;
case 3:
$color = '#F26A20';
break;
case 4:
$color = '#F1F121';
break;
default:
$color = '#FFF';
break;
}
$out.= '<a target="_self" href="http://localhost/abc/wp-admin/admin.php?page=Verkoopstatus'.$home_info->project.'&nr='.$home_info->nr.'">';
$out.= '<div style="position: absolute; border: 1px solid black; margin-left: '.$home_info->left.'px; margin-top: '.$home_info->top.'px; height: '.$home_info->height.'px; width: '.$home_info->width.'px; background-color: '.$color.'"><p style="padding-top: 0px; margin-top: 0px;" align="center">'.$home_info->nr.'</p></div>';
$out.='</a>';
}
return $out; // & echo showHome($project);
}