0

我正在尝试将自定义 cms 模块修改为 WordPress 插件。

该插件仅包含一个管理部分。访问者看到的部分是通过嵌入了 PHP 代码的常规 WordPress 页面加载的。这工作正常。

对于管理部分,我在 plugins 目录中创建了一个单独的文件夹,其中包含两个 PHP 文件。插件已激活,并且菜单项正确加载。但是,我遇到的问题是插件的管理内容被加载 A)在每个 wordpress 管理页面中,并且 B)一直在页面顶部。整个管理菜单低于我围绕内容放置的包装类。

对于 A)我在想我应该告诉插件只在它自己的页面上加载,但我不知道如何。对于 B)我的猜测是我应该告诉插件在哪里插入内容(使用钩子?),但我也不知道如何。这是我第一次尝试构建插件。我已经在许多网站上阅读了有关如何编写插件的信息,但我就是无法正确理解。

两个 PHP 文件:

  • 主插件文件:verkoopstatus-admin.php(我省略了插件模板信息部分):

Pastebin verkoopstatus-admin.php

  • 插件的内容部分:verkoopstatus.php

Pastebin verkoopstatus.php

谁能告诉我我在这里缺少什么?

4

2 回答 2

0
<?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 之后)

于 2012-06-19T05:22:24.823 回答
0

我认为更好的是

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);
}
于 2017-09-20T12:04:01.677 回答