我在我的函数文件中编写了一个钩子,它将安装的插件中的元盒添加到我创建的自定义帖子类型中。metabox看起来不错,但在metabox中选中的默认选择是“index,follow”,而我希望它在默认情况下是“noindex,nofollow”。是否有任何方法可以使用我的挂钩更改插件功能?
我的挂钩:
function robotsmeta_add_custom_box() {
add_meta_box(\'robotsmeta\',\'Robots Meta\',array(\'RobotsMeta_Admin\',\'noindex_option_fill\'),\'secured-area\',\'side\');
}
add_action(\'add_meta_boxes\', \'robotsmeta_add_custom_box\');
插件的noindex\\u option\\u fill函数:
function noindex_option_fill() {
global $post;
$robotsmeta = $post->robotsmeta;
if (!isset($robotsmeta) || $robotsmeta == "") {
$robotsmeta = "index,follow";
}
?>
<label for="meta_robots_index_follow" class="selectit"><input id="meta_robots_index_follow" name="robotsmeta" type="radio" value="index,follow" <?php if ($robotsmeta == "index,follow") echo \'checked="checked"\'?>/> index, follow</label><br/>
<label for="meta_robots_index_nofollow" class="selectit"><input id="meta_robots_index_nofollow" name="robotsmeta" type="radio" value="index,nofollow" <?php if ($robotsmeta == "index,nofollow") echo \'checked="checked"\'?>/> index, nofollow</label><br/>
<label for="meta_robots_noindex_follow" class="selectit"><input id="meta_robots_noindex_follow" name="robotsmeta" type="radio" value="noindex,follow" <?php if ($robotsmeta == "noindex,follow") echo \'checked="checked"\'?>/> noindex, follow</label><br/>
<label for="meta_robots_noindex_nofollow" class="selectit"><input id="meta_robots_noindex_nofollow" name="robotsmeta" type="radio" value="noindex,nofollow" <?php if ($robotsmeta == "noindex,nofollow") echo \'checked="checked"\'?>/> noindex, nofollow</label><br/>
<?php
}
最合适的回答,由SO网友:czerspalace 整理而成
可以尝试以下操作:
function set_robotsmeta_default( $post_object ) {
if (!isset($post_object->robotsmeta) || $post_object->robotsmeta == "") {
$post_object->robotsmeta = "noindex,nofollow";
}
return $post_object;
}
add_action( \'the_post\', \'set_robotsmeta_default\' );
编辑:由于上面的代码不起作用,下面的代码可以通过在插件之前编辑全局$post对象来工作
add_meta_boxes
被调用。我只是不知道这是否会影响已经设置了该值的帖子。
function set_robotsmeta_default() {
global $post;
if (!isset($post->robotsmeta) || $post->robotsmeta == "") {
$post->robotsmeta = "noindex,nofollow";
}
}
add_action( \'add_meta_boxes\', \'set_robotsmeta_default\', 1);