rankmath SEO插件可以在文章里面设置noindex和nofollow,不过如果想在文章外面批量查看index和follow状态的话就需要购买它们的pro插件,其实插件也很多贵,就是多装一个插件觉得麻烦,而且我就要一个能一眼查看文章index和follow,然后能一键设置index和follow就行啦。
说完立马开干,本文会涉及几个主要的wordpress自带function,不想了解的直接无脑粘贴代码即可。
⚠️ 以下所有代码请放到主题的functions.php最后一栏,特别建议放到子主题的functions.php最后一栏
在“所有文章”界面显示index栏
<pre class="wp-block-code">
add_filter( 'manage_posts_columns', 'keen_index_follow_column' );
function keen_index_follow_column( $column_array ) {
$column_array[ 'index_follow' ] = 'Index and Follow';
return $column_array;
}
粘贴完上面这段代码,在xxxx.com/wp-admin/edit.php界面,点一下右上角的screen options就能看到一个 Index and Follow选项,打勾之后,文章日期旁边就多了这个选项,不过下面是空的,接下来就开始赋值。
标出目前文章index状态
<pre class="wp-block-code">
add_action( 'manage_posts_custom_column', 'keen_value_columns', 10, 2 );
function keen_value_columns( $column_name, $post_id ) {
switch( $column_name ) {
case 'index_follow': {
$index_follows = get_post_meta( $post_id, 'rank_math_robots', true );
if($index_follows){
foreach ($index_follows as $index_follow){
echo $index_follow.'<br/>';
}
}else{
echo 'index<br>follow';
}
break;
}
}
}
粘贴完成,你就看到Index会出现值,如果之前都没设置过的话,会默认显示index follow,如果设置过noindex,也会显示对应的值。
展示批量编辑按钮
<pre class="wp-block-code">
add_action( 'bulk_edit_custom_box', 'keen_quick_edit_fields', 10, 2 );
function keen_quick_edit_fields( $column_name, $post_type ) {
switch( $column_name ) {
case 'index_follow': {
?>
<fieldset class=inline-edit-col-left>
<div class=inline-edit-col>
<span class=title inline-edit-categories-label>Rank math robots</span>
<ul style=height: 14em;border: 1px solid #ddd;margin: 0 0 5px;padding: .2em 5px;overflow-y: scroll;>
<li><label><input type=radio id=index value=0 name=index/><span class=title>index</span></label></li>
<li><label><input type=radio id=noindex value=1 name=index/><span class=title>noindex</span></label></li>
</ul>
</div>
<?php
break;
}
}
}
选择几篇文章,点击bulk edit就能看到展示的index和noindex按钮了
保存批量设置
<pre class="wp-block-code">
add_action( 'save_post', 'keen_bulk_edit_save' );
function keen_bulk_edit_save( $post_id ){
if ( ! wp_verify_nonce( $_REQUEST[ '_wpnonce' ], 'bulk-posts' ) ) {
return;
}
$index = ! empty( $_REQUEST[ 'index' ] ) ? absint( $_REQUEST[ 'index' ] ) : 0;
if($index==1){
$robot_array = array('noindex','nofollow');
update_post_meta( $post_id, 'rank_math_robots', $robot_array );
}elseif($index==0){
//$robot_array = array('index');
update_post_meta( $post_id, 'rank_math_robots', '' );
}
}
这里是把选择index还是noindex告诉数据库,然后保存起来,我这里做了一个小偷懒,点击noindex之后会启动noindex和nofollow,如果你想单独设置,可以在第三段代码中增加一个radio按钮,命名为nofollow,value为3,在第四段代码中增加一个判断value等于3的时候设置一个array值为nofollow即可,前提是有一点代码基础。
好了,粘贴完四段代码,就可以愉快的切换index和noindex了,效果截图如下:
给看到文章后面的一个福利,我做成了插件,下载安装激活就能用了