X

【WordPress】寄稿者や投稿者権限で、YouTube等の埋め込みや画像のアップができるようにするには?

WordPressで、記事を書く人に、「寄稿者」や「投稿者」の権限を付与して運用している企業も多いと思います。

サイト運営上、このような権限分けは非常に重要になりますが、その権限を与えられたアカウントで記事を書く際、ちょっと不便なことを経験しました。不便に感じたことは下記の2点です。

1)「寄稿者」や「投稿者」の権限では、YouTubeなどの外部サービスのコンテンツの埋め込みができない。

2)「寄稿者」権限では、画像のアップができない。

これらは、「functions.php」にちょっとしたコードを書くことで、解決できましたので、ご紹介します!

「寄稿者」や「投稿者」の権限で、YouTubeなどの外部サービスのコンテンツの埋め込みを可能にする方法

iframeタグが使えないことが理由

「寄稿者」や「投稿者」の権限で外部サービスのコンテンツの埋め込みができないようになっているのは、「iframe」というタグの使用が無効になっていることが理由です。

iframeは、悪意のある人がウィルス等を仕込んだりできる可能性があることから、wordpressでは、下位権限に対してそれを禁止しているのでしょう。

よって、「寄稿者」や「投稿者」であっても、iframeタグの使用を有効にしてあげればokということになります。

functions.php に追加するコード

使用しているテーマの「functions.php」の中に、下記のコードを追加すれば、iframeタグが使用可能になります。


	add_filter('user_has_cap','allow_unfiltered_html',10,3);

	function allow_unfiltered_html($allcaps, $cap, $args ){
		$allcaps['unfiltered_html']=$allcaps['edit_posts'];
		return($allcaps);
	}

「寄稿者」の権限で、画像のアップロードを可能にする方法

「寄稿者」権限だと、記事投稿画面に「メディアを追加」ボタンが表示されない

通常、記事投稿画面には、「メディアを追加」という画像をアップロードするボタンが表示されますが、「寄稿者」権限では表示されません。



なぜ制限しているのか、理由は不明ですが。。
これも、メディア投稿の使用を有効にする設定をしてあげればokです。

functions.php に追加するコード


	if ( current_user_can('contributor') && !current_user_can('upload_files') ){
	    add_action('admin_init', 'allow_contributor_uploads');
	}

	function allow_contributor_uploads() {
	    $contributor = get_role('contributor');
	    $contributor->add_cap('upload_files');
	}

以上、寄稿者や投稿者権限で、YouTube等の埋め込みや画像のアップができるようにする方法をご紹介しました!

shirushiru: