カテゴリー制限の現在形

閲覧数: 24(0)

残念ながらワードプレス公式サイトからは削除されてしまった「Allow Categories」プラグインですが、このサイトで必要とする機能を代替するプラグインが見つからないため、引き続き使用しています。過去の記事で何度か改修の記録を公開していますが、今回はPHPのメジャーバージョンアップ(PHP 7.4 –> 8.1)に伴う大規模改修(比較的)に関してです。

ますはオリジナルのコードから、この書き方でPHP 7.4の時は問題ありませんでしたが、PHP 8.1ではエラーとなりロードされませんでした。

add_option('allow_option',        array(), '', false);
add_action('admin_menu',        array('Allow_Category','allow_menu'));
add_action('admin_head',        array('Allow_Category','allow_adminHead'));
if('wp-login.php' != $pagenow && 'wp-register.php' != $pagenow) 
    add_action('template_redirect',     array('Allow_Category','allow_catRedirect'));
add_action('delete_post',       array('Allow_Category','allow_delPost'));
add_action('posts_where',       array('Allow_Category','allow_where'));
add_filter('comment_text_rss',      array('Allow_Category','allow_comments'));
add_filter('getarchives_where', array('Allow_Category','allow_where'));
add_filter('wp_get_nav_menu_items',  array('Allow_Category','allow_menu_nav'));

PHPの言語リファレンスやググってみた情報から、以下のように改修しました。

add_option('allow_option',          array(), '', false);
add_action('admin_menu',            [new Allow_Category, 'allow_menu']);
add_action('admin_head',            [new Allow_Category, 'allow_adminHead']);
if('wp-login.php' != $pagenow && 'wp-register.php' != $pagenow)
    add_action('template_redirect', [new Allow_Category, 'allow_catRedirect']);
add_action('delete_post',           [new Allow_Category, 'allow_delPost']);
add_action('posts_where',           [new Allow_Category, 'allow_where']);
add_filter('comment_text_rss',      [new Allow_Category, 'allow_comments']);
add_filter('getarchives_where',     [new Allow_Category, 'allow_where']);
add_filter('wp_get_nav_menu_items', [new Allow_Category, 'allow_menu_nav']);

また、今回の改修に合わせ、公開と非公開に関してルールを変更しました。これまでは「公開」カテゴリーか「公開」カテゴリーが含まれていないか、という若干曖昧な判定方法でしたが、今後は「公開」カテゴリーか「公開限定」カテゴリー(ログインユーザー以外には非公開)かを明確に指定することにしました。公開したくない記事は、カテゴリー「公開限定」を忘れずに指定するようにして下さい。この変更で「公開限定」カテゴリーを選べば、その後にどんなカテゴリーを指定しても「公開」されることはありません。この改修の結果。ページナビゲーションの除外カテゴリー指定がすっきりすることになりました。ログインユーザー向けには「184」=「公開限定」をページナビゲーションから除外するように指定します。

if ( !is_user_logged_in() ) :
    $args = wp_parse_args( $args, array(
        'in_same_term'       => true,
        'excluded_terms'     => '184',
        'taxonomy'           => 'category',
        'screen_reader_text' => __( 'Post navigation' ),
    ) );
endif;

the_post_navigation($args);
カテゴリーIT閑話, 公開タグ, , ,
究極のt2.nanoインスタ...

EC2の中で最小インスタンスタイプである「t2.nano」はCPUが1コアでメモリは512MBです。  続きを読む

SWIPER実装編
blank

Swiperの実装編、このサイトで実際に使っているJavaScriptの紹介です。 [code la  続きを読む

プラグインの脆弱性
blank

トップページから記事を選択して個別のページへ飛んだ後、本文の下に関連記事を表示するために使用していた  続きを読む

ElasticPress 3.5
blank

Elasticsearch用のプラグインであるElasticPressがメジャーバージョンアップ(3  続きを読む

記事に地図を表示する
blank

オープンストリートマップ用のプラグイン(OSM)を使って記事中に地図を表示するようにしました。自称「  続きを読む

PageSpeed Insights
blank

はGoogleが提供する「ウェブページのコンテンツを解析し、ページの読み込み時間を短くするための方法  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください