WordPress 投稿一覧に最終更新日を追加する

Filed under: functions.php,wordpress — kdcs @ 23年4月21日 金曜日

WordPress 投稿一覧に最終更新日を追加する
functions.php

// 投稿一覧に最終更新日を表示する並び替えも可 ------------------------------------------------------
add_filter( 'manage_edit-post_columns', 'aco_last_modified_admin_column' );
 
// 最終更新日の列を作成
function aco_last_modified_admin_column( $columns ) {
  $columns['modified-last'] =__( '最終更新日', 'aco' );
  return $columns;
}
add_filter( 'manage_edit-post_sortable_columns', 'aco_sortable_last_modified_column' );
 
// 最終更新した時間で記事を並べ替える
function aco_sortable_last_modified_column( $columns ) {
  $columns['modified-last'] = 'modified';
  return $columns;
}
add_action( 'manage_posts_custom_column', 'aco_last_modified_admin_column_content', 10, 2 );
 
// 出力をフォーマット
function aco_last_modified_admin_column_content( $column_name, $post_id ) {

  if ( 'modified-last' != $column_name )
    return;

  $modified_date   = the_modified_date( 'Y年Md日' );
 
  echo $modified_date;
}

最終更新日時(時間付き)

function last_modified_admin_column( $columns ) {
 $columns['modified-last'] =__( '最終更新日', 'aco' );
 return $columns;
}
add_filter( 'manage_edit-post_columns', 'last_modified_admin_column' );
 
function sortable_last_modified_column( $columns ) {
 $columns['modified-last'] = 'modified';
 return $columns;
}
add_filter( 'manage_edit-post_sortable_columns', 'sortable_last_modified_column' );
 
function last_modified_admin_column_content( $column_name, $post_id ) {
 if ( 'modified-last' != $column_name )
 return;
  
 $modified_date = the_modified_date( 'Y年Md日Ag時i分' );
 echo $modified_date;
}
add_action( 'manage_posts_custom_column', 'last_modified_admin_column_content', 10, 2 );

カスタム投稿タイプの一覧に最終更新日時を追加(時間付き)

function my_manage_edit_columns( $columns ) {
	$columns['modified'] = '更新日';
	return $columns;
}
add_filter( 'manage_edit-{カスタム投稿タイプ}_columns', 'my_manage_edit_columns' );

function my_manage_edit_sortable_columns( $columns ) {
	$columns['modified'] = 'modified';
	return $columns;
}
add_filter( 'manage_edit-{カスタム投稿タイプ}_sortable_columns', 'my_manage_edit_sortable_columns' );

function my_manage_posts_custom_column( $column_name ) {
	if ( 'modified' == $column_name ) {
		the_modified_date('Y年Md日Ag時i分');
	}
}
add_action( 'manage_{カスタム投稿タイプ}_posts_custom_column', 'my_manage_posts_custom_column' );

WordPress カスタム投稿タイプで「プレビュー」ボタンを無効にする

Filed under: functions.php,wordpress — kdcs @ 23年4月21日 金曜日

WordPressでカスタム投稿タイプとアドバンスドカスタムフィールドを利用して、例えば広告バナー表示や特定のページに埋め込んだ内容などのコンテンツの更新を行う場合、管理者以外はメニューの「新規追加」や「編集・クイック編集・ゴミ箱へ移動」ほか「プレビュー」などを非表示にしておく方が都合がよいことがある。

以下はその方法。(カスタム投稿タイプはhogehoge)

ダッシュボード左側のメニューから管理者以外hogehogeの新規追加を無効にする

function remove_admin_menus() {
 
    // level10以外のユーザーの場合
    if (!current_user_can('level_10')) {
 
        global $menu;
        global $submenu;
 
        // unsetで非表示にするメニューを指定
        unset($menu[2]);  // ダッシュボード
//      unset($menu[5]);  // 投稿
        unset($menu[10]); // メディア
        unset($menu[20]); // 固定ページ
        unset($submenu['edit.php?post_type=page'][10]); //固定ページのサブメニュー
        unset($menu[25]); // コメント
        unset($menu[60]); // 外観
        unset($menu[65]); // プラグイン
        unset($menu[70]); // ユーザー
        unset($menu[75]); // ツール
        unset($menu[80]); // 設定
 remove_menu_page('wpcf7'); //コンタクトフォーム7
 remove_submenu_page( 'edit.php?post_type=hogehoge', 'post-new.php?post_type=hogehoge' ); //hogehogeの新規追加非表示
    }
}

編集画面側に表示される「新規追加」を非表示にする

function custom_edit_newpost_delete($hook) {
	if($hook == 'edit.php' || $hook == 'post.php'){

    $postType = get_post_type();
if ( !current_user_can( 'administrator' ) ) {
    if ( $postType == 'hogehoge' ) { //カスタム投稿スラッグがhogehogeなら非表示
        echo '<style>.wrap .wp-heading-inline + .page-title-action{display: none;}</style>';
	  }

	}
  }
}
add_action('admin_enqueue_scripts', 'custom_edit_newpost_delete');

編集画面の公開エリアにある「プレビュー」または「変更をプレビュー」を無効にするには、カスタム投稿タイプ作成時の設定で「publicly_queryable」をfalseにする。
以下参考

register_post_type( 'support', array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'support' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
) );

一覧の「編集・クイック編集・ゴミ箱へ移動・プレビュー」を非表示にする

function custom_action_row($actions, $post){
    
    $postType = get_post_type();
    if ( $postType == "recruit" ){ //カスタム投稿スラッグがrecruitなら非表示
       unset($actions['edit']); //編集
       unset($actions['inline hide-if-no-js']); //クイック編集
       unset($actions['trash']); //ゴミ箱
       unset($actions['view']); //プレビュー
    }

    return $actions;
}
add_filter('post_row_actions','custom_action_row', 10, 2);

WordPress 管理画面の翻訳された文字列の変更

Filed under: functions.php,wordpress — kdcs @ 23年2月22日 水曜日

サイトの内容によっては管理画面内の文字列が合っていない場合があるため、翻訳された文字列を変更したい場合がある。

例:ユーザープロフィール画面の「ブログ上の表示名」を「フルネーム」に変更する

※通常、翻訳ファイルはja.poとja.moだが管理画面についてはadmin-ja.poとadmin-ja.moになるので今回の場合はadmin-ja.poからmsgidを調べる。
「ブログ上の表示名」のmsgidは「Display name publicly as」

functions.phpに記述(翻訳テキストを変える)

add_filter( 'gettext', function( $translation, $text, $domain ) {
	global $pagenow;
	if ( 'profile.php' === $pagenow || 'user-edit.php' === $pagenow ) {
		if ( 'default' === $domain ) {
			$texts = array (
				'Display name publicly as' => 'フルネーム(確認)',
			);
			if ( isset( $texts[$text] ) ) {
				$translation = $texts[$text];
			}
		}
	}
	return $translation;
}, 10, 3 );

(続きを読む…)

WordPressの「W」マークファビコンを無効化、独自ファビコンに変える

Filed under: functions.php,wordpress — kdcs @ 22年8月19日 金曜日

ウェブサイトにファビコンを設定しても静的ファイルを開くと「W」がファビコンとして表示されてしまう。

WordPress version 5.4 以降では、WordPress本体が勝手にこのリクエストを処理し、Wordpressn内の「W」アイコン(/wp-includes/images/w-logo-blue-white-bg.png)へリダイレクトする表示させる処理が追加されました。

このデフォルトで設定されているアイコンを無効化して独自アイコンに変える記述
function.php

// 「W」アイコンの表示をやめて独自アイコンを設定する---------------
add_action( 'do_faviconico', 'wwwc_no_wp_favicon' );
function wwwc_no_wp_favicon() {

    // 必要があれば、アイコン画像をセット
    wp_redirect( get_theme_file_uri( 'img/favicon.png' ) ) ;
    exit;

}

/wp-includes/functions.php でアクションが定義されています。関数 do_favicon() 自体は、/favicon.ico へのアクセスがあった場合に呼ばれるアクションです。(デフォルトのrewrite rules に定義されています。

Word Press ログイン画面のラベルを変更する

Filed under: functions.php,wordpress — kdcs @ 22年8月15日 月曜日

ログイン時の「ユーザー名またはメールアドレス」のラベルを書き換える

例:メールアドレスだけにする

function change_loginpage_username_label($label){
if (in_array($GLOBALS['pagenow'], array('wp-login.php'))) {
if ($label == 'ユーザー名またはメールアドレス') { 
$label = 'メールアドレス';
}
}
return $label;
}
add_filter( 'gettext', 'change_loginpage_username_label' );

サイト内検索

カテゴリー

最近の投稿

↑上に戻る