Wordpress自定义元框没有显示

时间:2013-08-09 22:45:47

标签: wordpress custom-post-type meta-boxes

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

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 

}

是不是很明显我错过了?我复制并粘贴了链接中的示例并获得了相同的结果。

3 个答案:

答案 0 :(得分: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 
}
?>

答案 1 :(得分: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'));

答案 2 :(得分:0)

我坚持了两天-我通过添加...来解决此问题。

wp_nonce_field(basename( FILE ),'your_plugin_name_nonce');

...到我的metabox中的表单。