0

试图将元框添加到我的管理员中,并在此处找到了制作它们的代码。对代码进行了一些更改,将其应用于我的网站,并且在任何帖子或页面类型上都没有显示元框。下面的代码:

add_action('admin_init');

function admin_init() {
    add_meta_box("credits_meta", "Mixtape Info", "credits_meta", "mixtape", "normal", "low");
}

function credits_meta() {
    global $post;
    $custom = get_post_custom($post->ID);
    $dj = $custom["DJ"][0];
    $embed = $custom["embed code"][0];
    $tracklisting = $custom["tracklisting"][0];
    ?>;
    <label>DJ:</label>
    <input name="DJ" value="<?php echo $dj; ?>"/>
    <p><label>Embed:</label><br />
    <textarea cols="50" rows="5" name="embed code"><?php echo $embed; ?></textarea></p>
    <p&><label>Tracklisting:</label><br />
    <textarea cols="50" rows="5" name="tracklisting"><?php echo $tracklisting; ?></textarea></p>
    <?php 

}

我错过了什么明显的东西吗?我在链接中复制并粘贴了示例并得到了相同的结果。

4

3 回答 3

1
<?php
function credits_meta() {
    global $post;
    $custom = get_post_custom($post->ID);
    $dj = "a";
    $embed = "b";
    $tracklisting = "c";
    ?>
    <label>DJ:</label>
    <input name="DJ" value="<?php echo $dj; ?>"/>
    <p><label>Embed:</label><br />
    <textarea cols="50" rows="5" name="embed code"><?php echo $embed; ?></textarea></p>
    <p&><label>Tracklisting:</label><br />
    <textarea cols="50" rows="5" name="tracklisting"><?php echo $tracklisting; ?></textarea></p>
    <?php 
}
?>
于 2014-10-06T06:10:40.607 回答
0

add_action('admin_init');这是错误的。

add_action期望第一个参数是函数钩子,第二个参数是调用钩子时要执行的函数,例如:

add_action('admin_init', 'admin_init');

但即使这样也是错误的,因为你会在尝试重新声明之前声明的函数时遇到错误,所以相反,它应该类似于

add_action('admin_init', 'my_admin_init');

my您的应用程序的命名空间在哪里。

或者使用类。这可能存在于一个名为my_class.php

class my_class {
    public function my_admin_init(){
        //do work
    }
}

需要此文件在您的functions.php

require_once('path/to/my_class.php');

实例化类

$my_class = new my_class;

现在调用函数admin_init

add_action('admin_init', array($my_class, 'my_admin_init'));
于 2013-08-10T02:04:24.033 回答
0

我被困了两天 - 我通过添加...解决了这个问题

wp_nonce_field(基本名称(文件),'your_plugin_name_nonce');

...到我的元框中的表格。

于 2019-02-21T23:48:46.143 回答