こんにちは
投稿一覧メニューで開いたときでしたら、下記ページが参考になると思います。
https://wordpress.stackexchange.com/questions/131199/change-url-of-plugin-admin-menu
例:
add_action( 'admin_menu', function() {
global $menu, $submenu;
if ( isset( $submenu['edit.php'] ) ) {
foreach ( $submenu['edit.php'] as $key => $value ){
if ( 'edit.php' === $value[2] ) {
$submenu['edit.php'][$key][2] = 'edit.php?post_status=publish';
break;
}
}
}
}, 100 );
ありがとうございます!投稿一覧で公開済みがデフォルト表示されました!
何度も恐れ入りますが、
カスタム投稿タイプにも適用させたいのですが、
どのようにすれば良いのでしょうか。
if ( isset( $submenu['edit.php?post_type=〇〇〇'] ) ) {
foreach ( $submenu['edit.php?post_type=〇〇〇'] as $key => $value ){
if ( 'edit.php?post_type=〇〇〇' === $value[2] ) {
$submenu['edit.php?post_type=〇〇〇'][$key][2] = 'edit.php?post_type=〇〇〇&post_status=publish';
break;
}
}
}
※ 〇〇〇 は投稿タイプのスラッグ名。
こんな感じでしょうか?
ありがとうございます!
教えていただいたコードで2つのカスタム投稿タイプに適用しようとしたのですが
一つ目しかデフォルト表示を公開済みにできませんでした。
下記コードを使ったのですが、どこが原因で二つ目に適応できていないのでしょうか。
AとBの投稿タイプです。
add_action( 'admin_menu', function() {
global $menu, $submenu;
if ( isset( $submenu['edit.php?post_type=A'] ) ) {
foreach ( $submenu['edit.php?post_type=A'] as $key => $value ){
if ( 'edit.php?post_type=A' === $value[2] ) {
$submenu['edit.php?post_type=A'][$key][2] = 'edit.php?post_type=A&post_status=publish';
break;
}
}
} elseif ( isset( $submenu['edit.php?post_type=B'] ) ) {
foreach ( $submenu['edit.php?post_type=B'] as $key => $value ){
if ( 'edit.php?post_type=B' === $value[2] ) {
$submenu['edit.php?post_type=B'][$key][2] = 'edit.php?post_type=B&post_status=publish';
break;
}
}
}
}, 100 );
お世話になっております。
アクションフックには処理(関数)を複数登録できる記事を見つけましたので
下記の通り修正したところ、複数のカスタム投稿タイプに適応できました。
お騒がせいたしました。
(参考にしたURL)
https://www.webdesignleaves.com/pr/wp/wp_func_hook.html
▽修正後のコード
add_action( 'admin_menu', 'admin_menu_A');
function admin_menu_A() {
global $menu, $submenu;
if ( isset( $submenu['edit.php?post_type=A'] ) ) {
foreach ( $submenu['edit.php?post_type=A'] as $key => $value ){
if ( 'edit.php?post_type=A' === $value[2] ) {
$submenu['edit.php?post_type=A'][$key][2] = 'edit.php?post_type=A&post_status=publish';
break;
}
}
}
}
add_action( 'admin_menu', 'admin_menu_B');
function admin_menu_B() {
global $menu, $submenu;
if ( isset( $submenu['edit.php?post_type=B'] ) ) {
foreach ( $submenu['edit.php?post_type=B'] as $key => $value ){
if ( 'edit.php?post_type=B' === $value[2] ) {
$submenu['edit.php?post_type=B'][$key][2] = 'edit.php?post_type=B&post_status=publish';
break;
}
}
}
}