首先,这不是使用自定义post meta。。。您正在尝试检索类别并使用这些类别的存在来选中这些框。我也没有看到任何脚本可以在单击值后保存它们。。。当这个解决方案起作用时,我认为这是一个非常粗糙的解决方案,所以我对它的不稳定和损坏并不感到惊讶。
但是,您可以实际使用自定义post meta来完成您想要做的事情。请改用以下脚本:
// ===================
// = POST OPTION BOX =
// ===================
add_action(\'admin_menu\', \'my_post_options_box\');
function my_post_options_box() {
if ( function_exists(\'add_meta_box\') ) {
add_meta_box(\'categorydiv\', __(\'Page Index Options\'), \'post_categories_meta_box_modified\', \'page\', \'side\', \'high\');
}
}
//adds the custom categories box
function post_categories_meta_box_modified() {
global $post;
if( get_post_meta($post->ID, \'_noIndex\', true) ) $noindexChecked = " checked=\'checked\'";
if( get_post_meta($post->ID, \'_noFollow\', true) ) $nofollowChecked = " checked=\'checked\'";
?>
<div id="categories-all" class="ui-tabs-panel">
<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
<li id=\'noIndex\' class="popular-category"><label class="selectit"><input value="noIndex" type="checkbox" name="chk_noIndex" id="chk_noIndex"<?php echo $noindexChecked ?> /> noindex</label></li>
<li id=\'noFollow\' class="popular-category"><label class="selectit"><input value="noFollow" type="checkbox" name="chk_noFollow" id="chk_noFollow"<?php echo $nofollowChecked ?> /> nofollow</label></li>
</ul>
</div>
<?php
}
function save_post_categories_meta($post_id) {
if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) return $post_id;
$noIndex = $_POST[\'chk_noIndex\'];
$noFollow = $_POST[\'chk_noFollow\'];
update_post_meta( $post_id, \'_noIndex\', $noIndex );
update_post_meta( $post_id, \'_noFollow\', $noFollow );
return $post_id;
}
add_action(\'save_post\', \'save_post_categories_meta\');
这将在自定义post元字段“noIndex”和“noFollow”中存储布尔标志,检索这些字段的值以在自定义元框中使用,并允许您轻松访问站点中的其他位置。使用
get_post_meta( $post->ID, \'meta-name\', true )
检索它们。