web-dev-qa-db-ja.com

管理メニュー「Pages」を他のものに変更する方法

カスタム投稿タイプを作成すると、その投稿タイプに関連するさまざまな要素を定義することができます。これにより、メニュータイトル、「新しい投稿の追加」テキストなどのものを定義できます。

私が考えようとしているのは、私のfunctions.phpファイルにどんなコードを追加する必要があるかということです。そのため、これらのことをwordpressが追加する既存の "デフォルト"投稿タイプに設定できます。

たとえば、 "Pages"投稿タイプを "Main Sections"に変更したいとしましょう。

現在私が行ったことは以下のコードを使用しています:

add_filter( 'gettext', 'change_admin_menu_pages' );
add_filter( 'ngettext', 'change_admin_menu_pages' );
function change_admin_menu_pages( $translated ) {
    $translated = str_replace( 'Page', 'Core Page', $translated );
    $translated = str_replace( 'page', 'core page', $translated );
    return $translated;
}

これはうまくいき、 "pages"のすべてのインスタンスを "main section"で置き換えるだけですが、私が気付いたのは、URL内で "pages ="を使用するプラグインなど、サイトの他の領域にも影響することです。

そのようなものとして... "pages"や "posts"のようなデフォルトのワードプレスの投稿タイプに対して投稿タイプ設定を定義する簡単な方法はありますか?もしそうなら、誰かがすぐにそれがどのように機能するかを説明してもらえますか?

別のメモでは...私はフィルタを使用していると感じています

  • add_filter( 'ngettext'、...)

実際には非常に便利ですが、私が理解していないのは、それが何かをフィルタリングすることを許可されている領域を制限する方法です。

両方またはどちらかの質問に対する答えは大歓迎です

前もって感謝します!

1

もう一つの簡単なもの! :)

ご存じのとおり、私は一般的にWordPressを非常に高く評価していますが、管理メニューのアーキテクチャは 私が今まで見たことのない最も厄介なハックの1つ オープンソースソフトウェアです。その大きさだけが大きいのは、WordPressのコアチームがそれがどれほど悪いのかを認めようとしないことと、それを改善することについて議論する意思がないことです。しかし私は脱線します...

とにかく、ここにあなたが欲しいものがある(私は思う):

Screenshot of a WordPress admin menu modified to
(出典: mikeschinkel.com

そしてそれを得る方法は次のとおりです。

add_action('admin_menu','rename_pages_to_main_sections');
function rename_pages_to_main_sections() {
  global $menu;
  global $submenu;
  $menu[20][0] = 'Main Sections';
  $submenu['edit.php?post_type=page'][5][0] = 'Main Sections';
}

P.Sまた、ここに掲載したコードも参考になります。

7
MikeSchinkel

マイク、あなたはもう一つの簡単なものに 'sarkasm'というタグを付けたはずです。 line ...しばらくの間、コアメニューの配列をハッキングするのが簡単な方法であることがよくわかりませんでした…「チャレンジ」を読むまでは。

私は3.0.5を使って同じような挑戦をしています...それはカスタム投稿タイプセクションの下にカスタムページを試して追加することです。そうするとき、それは常にedit.php?post_type = xyzとしてロードします。

面白いことに、edit.phpにはadmin-header.phpが含まれていて、次にadmin.phpが含まれているので、add_submenu_page()で指定したページが読み込まれます。しかし、まず第一に、これは幸運な偶然の一致のように思えます、第二に、それはedit.phpが初期化作業のすべてをした後に初めてそれをします。悪い。

さらに、URLやその一部(クエリ引数など)をページで再利用しようとすると、問題が発生します。

結局のところ、私は完全に同意します...このようなことは管理メニュー生成の見直しを正当化するためにするには余りにも簡単な方法です。 ;-)

とにかく、あなたのヒントのために、私は今、直接配列をハッキングすることによって私が達成できるものを試みるつもりです。

0
wyrfel