尝试将元框添加到我的管理员,并在此处找到一个代码来制作它们。对代码进行了一些更改,将其应用到我的网站,并且在任何帖子或页面类型上都没有显示元框。代码如下:
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
}
是不是很明显我错过了什么?我复制并粘贴了链接中的示例并获得了相同的结果。
<?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
}
?>
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'));
我被困在这两天了 - 我通过添加...来解决问题
wp_nonce_field(basename(FILE),'your_plugin_name_nonce');
...到我的metabox中的表单。