制作Wordpress插件 - 显示在整个网站的顶部

时间:2013-11-28 17:00:36

标签: php wordpress plugins

* HIVOLDA的考试,如果是外部考试,请 *

我刚为学校制作了一些Wordpress插件。

我的PHP文件工作正常,但是当我上传并将其作为插件激活时,它们只显示在页面顶部。

如你所知,我很有点......

屏幕截图:s27.postimg.org/53w3bmyw3/131128oav_plugin.jpg

这是最短的代码:

    <html>
<head>
<meta charset="utf-8">
<title>Registrering av åpne bakker</title>
</head>

<body>
<?PHP

/**
 * Plugin Name: Haugsdalen Skisenter Bakkeregistrering
 * Description: Registrering av åpne/stengte bakker for Haugsdalen Skisenter.
*/


function visSkjema(){   

    echo('  
    <form id="bakkerreg" name="bakkerreg" method="post" action="bakkerreg.php">
      <label for="hoved">Er hovedbakken åpen?</label><br/>
      <input type="radio" name="hoved" value="Åpen">Ja
      <input type="radio" name="hoved" value="Stengt">Nei<br/>
      <label for="skog1">Er skogsløypen vest åpen?</label><br/>
      <input type="radio" name="skog1" value="Åpen">Ja
      <input type="radio" name="skog1" value="Stengt">Nei<br/>
      <label for="skog2">Er skogsløypen øst åpen?</label><br/>
      <input type="radio" name="skog2" value="Åpen">Ja
      <input type="radio" name="skog2" value="Stengt">Nei<br/>  
      <input type="submit" name="lagre" id="lagre" value="Send inn">
    </form>');

}

if( isset($_POST['lagre'])) {

    if( $_POST['hoved']!="" && 
        $_POST['skog1']!="" AND  
        $_POST['skog2']!="" ){ 
    /* Her lagrer den til databasen*/

        $db = mysql_connect('localhost','USERNAME','PASSWORD');
        /* Velge database */

        mysql_select_db('USERNAME',$db);
        /* Definer spørringen */

        $sql = "INSERT INTO bakker(hoved,skog1,skog2)
                VALUES('".$_POST['hoved']."',
                '".$_POST['skog1']."',
                '".$_POST['skog2']."') ";

        /* Kjør spørring */

        $resultat = mysql_query($sql);
        if($resultat) {
            echo ("<p>Grattis, du har nå registrert informasjonen!</p>");
        }else {
            echo ("<p>Du failet!</p>");
            echo ("<p>".mysql_error()."</p>");

        }
    }else{  // Manglande obligatoriske felt
        visSkjema();
    }
}else {
    /*Vis skjema, ingen har trykt på lagre knappen (enda) */
    visSkjema();
}
?>
</body>
</html>

连连呢? :)

目的是在首页上轻松更新信息。它将是一个管理员轮询系统,公司可以通过按复选框更新信息。我制作了3个具有此功能的插件。这个具有公司可以更新哪个滑雪场开放的功能。我还制作了一个具有注册表单的插件,并发送到数据库。还有一个从数据库接收信息的文件,管理员可以删除任何行。

* HIVOLDA的考试,如果是外部考试,请 *

1 个答案:

答案 0 :(得分:3)

听起来你对WordPress的功能有点困惑。在WordPress加载所有文件之后,但在它实际执行任何操作之前,插件都会在页面加载开始时包含在Wordpress中。这允许插件从那一点进一步修改任何功能,但意味着你实际上不能写出任何代码,因为它最终会在页面的顶部。

Wordpress通过所谓的钩子系统来解决这个问题。钩子(或动作钩子)在整个WordPress中设置并在某些时候被调用,你可以用它们注册你的函数,因此在运行该钩子时会调用它们。我知道这有点抽象,所以这里有一个例子:

add_action( 'get_footer', 'customplugin_footer_hook' );

function customplugin_footer_hook ($name)
{
    echo 'Some code here.';
    echo 'This will show up right before the footer, because it's registered to the get_footer action hook';
}

有动作和过滤器,过滤器被设计用于修改传递给它们的数据,并返回它,动作(或钩子)被设计为给予数据并在屏幕上打印一些东西(但这并不总是他们'用于)。

所有这一切都说,它看起来并不像你实际上想要做的那样有多大帮助,因为在WordPress中处理发布数据可能有点混乱,我不知道这是不是假设是民意调查,或管理员设置,或其他;我不会说挪威语:)

向我们提供有关您要实现的目标的更多信息,我们可能会向您提供有关如何执行此操作的详细信息。

同时有一些有用的链接: