Wordpress自定义元框没有显示

问题描述 投票:0回答:3

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

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 

}

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

wordpress custom-post-type meta-boxes
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 
}
?>

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'));

0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.