カテゴリー制限の現在形

閲覧数: 13(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)タグ, , ,
テーマ翻訳:実践編

テーマ翻訳についての理解を深めるため「実践編」として「Search Form(検索メニュー)」を翻訳  続きを読む

mediawiki 1.30.0
blank

意外と早くメジャーバージョンアップが来た。例によって非互換があるのでテスト系でバージョンアップの確認  続きを読む

PageSpeed Insights
blank

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

検索に悩む
blank

インターネットを使って情報を入手する時、得られた情報の品質は、検索サイトの精度というよりは、検索に使  続きを読む

Sticky Headerその後
blank

Sticky Headerをやりたくて、その名もずばり「Sticky Header」と言うプラグイン  続きを読む

dockerとiptables
blank

クラウドサーバーを利用する場合、ファイアウォール(Firewalld/iptables)の設定に失敗  続きを読む

スポンサーリンク

コメントを残す

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