尝试向我的管理员添加元框,并在此处找到代码来制作它们。对代码进行了一些更改,将其应用到我的网站,并且在任何帖子或页面类型上都没有显示元框。代码如下:
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
}
是不是很明显我错过了?我复制并粘贴了链接中的示例并获得了相同的结果。
答案 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中的表单。