• 给网站增加一个离线缓存功能
  • 明天我们家宝宝满月了
  • 一晚上忙了好几个小时,终于把支付前台通知解决了
  • 原计划要增加另外一种支付方案,现在可能要被搁置了
  • 今天上午刚刚注册了华为云,然后刚刚华为云的客服小姐姐就来电话了,小姐姐声音挺好听的
  • 今天无意中注册了华为云,然后发现跟阿里云基本一个模样,甚至连价格都一样
  • 继续测试一下
  • 发现一个问题就是,微信语音发送说说的时候,不要拦截没有UA的数据请求
  • 测试一下连接
  • 终于下雪了

WordPress限定用户投稿的方法

WordPress 云落 4年前 (2015-02-06) 522次浏览 已收录 5个评论
文章目录[隐藏]

WordPress功能扩展,让投稿者固定在某一个分类投稿,代码搞定啦!

前言

刚刚给一个客户要求用户投稿只能投给某个分类,而且是不审核自动发布的,考虑了下,自动发布的话,把用户角色调节到作者就可以了,然后限定分类的功能用下面的代码就可以解决了。

代码部署

以下代码放在函数文件functions.php里面倒数第二行即可。

		add_action( 'show_user_profile', 'restrict_user_form' );
		add_action( 'edit_user_profile', 'restrict_user_form' );

		function restrict_user_form( $user ) {
			if ( ! current_user_can('add_users'))
				return false;
			$args = array(
				'show_option_all'    => '',
				'show_option_none'   => '未选择',
				'orderby'            => 'ID', 
				'order'              => 'ASC',
				'show_count'         => 0,
				'hide_empty'         => 0,
				'child_of'           => 0,
				'exclude'            => '',
				'echo'               => 1,
				'selected'           => get_user_meta( $user->ID, '_access', true),
				'hierarchical'       => 0, 
				'name'               => 'allow',
				'id'                 => '',
				'class'              => 'postform',
				'depth'              => 0,
				'tab_index'          => 0,
				'taxonomy'           => 'category',
				'hide_if_empty'      => false,
				'walker'             => ''
			);
		?>

			<h3>限制该用户只能投稿到分类</h3>

			<table class="form-table">
				<tr>
					<th><label for="access">选择分类:</label></th>

					<td>
						<?php wp_dropdown_categories($args); ?>
						<br />
						<span class="description">用于限制投稿者的分类目录</span>
					</td>
				</tr>

			</table>
		<?php }
		
		/* save the data from admin */
		add_action( 'personal_options_update', 'restrict_save_data' );
		add_action( 'edit_user_profile_update', 'restrict_save_data' );
		
		function restrict_save_data( $user_id ) {
			if ( ! current_user_can( 'add_users' ) )
				return false;
			update_user_meta( $user_id, '_access', $_POST['allow'] );
		}
		
		// check if the user loggin in is author and be restricted
		function is_restrict() {
			if ( get_user_meta(get_current_user_id(), '_access', true) > 0 )
					return true;
			else
					return false;
		}
		
		
		/* auto register category to post that the author's being restricted */
		add_action( 'save_post', 'save_restrict_post' );
		function save_restrict_post( $post_id ) {
			if ( ! wp_is_post_revision( $post_id ) && is_restrict() ){
			remove_action('save_post', 'save_restrict_post');
				wp_set_post_categories( $post_id, get_user_meta( get_current_user_id() , '_access', true) );
			add_action('save_post', 'save_restrict_post');
			}
		}
		
		/* warning author */
		add_action( 'edit_form_after_title', 'restrict_warning' );
		function restrict_warning( $post_data = false ) {
			if (is_restrict()) {
				$c = get_user_meta( get_current_user_id() , '_access', true);
				$data = get_category($c);
				echo 'You are allowing to post to category: <strong>'. $data->name .'</strong><br /><br />';
			}
		}
		
		/* remove category dropdown box in editor */
		function restrict_remove_meta_boxes() {
			if (is_restrict() )
				remove_meta_box('categorydiv', 'post', 'normal');
		}
		add_action( 'admin_menu', 'restrict_remove_meta_boxes' );

使用方法

在用户里面找到用户,点击编辑,最下面就有一个选择分类的下拉菜单,选择一个,那么这个用户只能在这个分类里面投稿了。

实际效果

2015-02-06_231136


-- 完 --
weinxin
扫码订阅,第一时间获得更新
微信扫码二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

乐趣公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:WordPress限定用户投稿的方法
喜欢 (2)
云落
关于作者:
无折腾,不生活,我是一个WordPress菜鸟,一个玩淘宝的卖家,欢迎你认识我,我是云落!
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(5)个小伙伴在吐槽
  1. 投稿功能能不能调用别的编辑器?然后能上传文件等?
    黑苹果乐园2015-04-25 20:30 回复 Windows XP | Chrome 38.0.2125.122
  2. 签到成功!签到时间:2015-02-20 01:21:05,每日打卡,生活更精彩哦~
    木语子云2015-02-20 01:21 回复 Windows 7 | Chrome 39.0.2171.99