カテゴリー: WordPress
この記事は2020年5月15日に書かれたものです。情報が古い可能性がありますのでご注意ください。
WordPress では oEmbed 機能により、URL を入力するだけで簡単に YouTube 動画や Twitter の投稿などを埋め込むことができますが、Version 4.4 以降からは WordPress の投稿を下記のような「ブログカード」というスタイルで、内部リンクや oEmbed がサポートされた外部のサイトにも埋め込むこともできるようになっています。
しかし、ブログならともかく、WordPress を企業や団体の Web サイトとして運用している場合、単に URL を記述したいとか、そもそもブログカードとして提供したくないということがあります。
“WordPress のブログカードを無効にした時の Gutenberg の挙動” の続きを読む »
カテゴリー: WordPress
この記事は2020年4月2日に書かれたものです。情報が古い可能性がありますのでご注意ください。
投稿者権限のユーザーがログインしている時、投稿一覧を表示すると自身の投稿以外の投稿も見えます。編集はもちろんできず、タイトルが表示されているだけですが、下書きの投稿も見えてしまうので見えないようしたいと思い、次のようなコードを functions.php に書きました。
function show_only_authorpost($query) {
global $current_user;
if( is_admin() && !current_user_can('edit_others_posts') ){
$query->set('author', $current_user->ID);
}
}
add_action('pre_get_posts', 'show_only_authorpost');
これで投稿者は自身の投稿しか表示されなくなりますが、しかし、投稿画面を見ると Advanced Custom Fields (ACF) プラグインで作成したカスタムフィールドが消えていました。
散々悩んだ末、ACF で作成するカスタムフィールドも acf-field-group という一つの投稿タイプであり、管理者が作成しているので、自身の投稿ではないからこれも見えなくなっているのだと気づきました。
そこで、管理画面用のグローバル変数 $pagenow を使い、表示しているページのファイル名(投稿一覧画面は edit.php)による判別を追記しました。
function show_only_authorpost($query) {
global $current_user;
global $pagenow;
if( is_admin() && !current_user_can('edit_others_posts') && $pagenow === 'edit.php' ){
$query->set('author', $current_user->ID);
}
}
add_action('pre_get_posts', 'show_only_authorpost');
これで ACF のカスタムフィールドが表示されます。
カテゴリー: WordPress
この記事は2020年3月30日に書かれたものです。情報が古い可能性がありますのでご注意ください。
TinyMCE Advanced プラグインを利用すると、WordPress のビジュアルエディタでテーブルを挿入することができるのですが、このテーブルの挙動には以前から悩まされています。それは、テーブルと全てのセルに勝手に width や height を設定してしまうという仕様です。
以前の TinyMCE Advanced 5.1.0 までは、テーブルを挿入した時は問題ないのですが、テーブルの罫線をドラッグした際に width や height が追加されます。これは後述の方法で対策していました。
そして TinyMCE Advanced が 5.2.0 にアップッデートされた時、改善されるかと思いきや、ますます厄介なことに、テーブルを挿入した時に有無を言わさず width が設定されるようになっていました。5.3.0 になってもそれは変わらないのですが、その仕様を受け入れつつ、対策することにしました。
“TinyMCE Advanced のテーブルで勝手に設定される width 対策(妥協策)” の続きを読む »