ホームページ > CMS チュートリアル > &#&プレス > WordPressのカスタム書き込みパネルのガイド

WordPressのカスタム書き込みパネルのガイド

Jennifer Aniston
リリース: 2025-02-21 08:55:09
オリジナル
1001 人が閲覧しました

WordPress 3.0は、WordPress MUの統合(マルチサイト管理を可能にする)やカスタムポストタイプの導入など、大幅な更新を導入しました。 カスタム投稿タイプによって強化された特に便利な機能は、カスタム書き込みパネルです。

Guide to Wordpress's Custom Write Panels

カスタム書き込みパネルは、カスタムフィールドにリンクされたポストエディター内のカスタマイズ可能なフォームフィールド(テキスト入力、チェックボックスなど)を提供します。デフォルトのカスタムフィールドパネルは利用可能ですが、広範なデータ入力は面倒です。カスタム書き込みパネルは、合理化された視覚的に魅力的な代替品を提供します

「本」のカスタム投稿タイプで説明しましょう。 標準のタイトルとコンテンツを超えて、「著者」と「ISBN」フィールドを追加します。 あなたのテーマの

で、このコードを追加してカスタム投稿タイプを登録してください:

functions.php

これにより、「書籍」の投稿タイプが登録されます。 次に、次のことを
add_action( 'init', 'create_book_type' );
function create_book_type() {
  register_post_type( 'books', array(
    'labels' => array(
      'name' => __( 'Books' ),
      'singular_name' => __( 'Book' )
    ),
    'public' => true,
  ) );
}
ログイン後にコピー
に追加して、カスタム書き込みパネルを作成します。

functions.phpテーマにA

ディレクトリを作成して、
// Define paths (adjust as needed)
define( 'MY_WORDPRESS_FOLDER', $_SERVER['DOCUMENT_ROOT'] );
define( 'MY_THEME_FOLDER', str_replace("\",'/',dirname(__FILE__)) );
define( 'MY_THEME_PATH', '/' . substr( MY_THEME_FOLDER, stripos(MY_THEME_FOLDER,'wp-content') ) );

add_action('admin_init','book_meta_init');
function book_meta_init() {
  wp_enqueue_style( 'my_meta_css', MY_THEME_PATH . '/custom/book_panel.css' );
  add_meta_box( 'book_meta', 'Book Information', 'book_meta', 'books', 'advanced', 'high' );
}

function book_meta() {
  global $post;
  $author = get_post_meta($post->ID,'author',TRUE);
  $isbn = get_post_meta($post->ID,'isbn',TRUE);
  include(MY_THEME_FOLDER . '/custom/book_information.php');
  wp_nonce_field( __FILE__, 'my_meta_noncename' );
}

function my_meta_save($post_id) {
  if (!wp_verify_nonce( $_POST['my_meta_noncename'], __FILE__ )) return $post_id;
  if (!current_user_can('edit_post', $post_id)) return $post_id;
  $accepted_fields['books'] = array( 'author', 'isbn' );
  $post_type_id = $_POST['post_type'];
  foreach ($accepted_fields[$post_type_id] as $key) {
    $custom_field = $_POST[$key];
    if (is_null($custom_field)) delete_post_meta($post_id, $key);
    elseif (isset($custom_field) && !is_null($custom_field)) update_post_meta($post_id,$key,$custom_field);
  }
  return $post_id;
}
add_action('save_post','my_meta_save');
ログイン後にコピー
(スタイリング用)と

(パネルHTML用)を追加します。custom> book_panel.cssbook_information.php

book_panel.css

.book_panel .description { display: none; }
.book_panel label { display: block; font-weight: bold; margin: 6px; margin-bottom: 0; margin-top: 12px; }
.book_panel label span { display: inline; font-weight: normal; }
.book_panel span { color: #999; display: block; }
.book_panel textarea, .book_panel input[type='text'] { margin-bottom: 3px; width: 100%; }
.book_panel h4 { color: #999; font-size: 1em; margin: 15px 6px; text-transform:uppercase; }
ログイン後にコピー

book_information.php最後に、テーマにカスタムフィールドを表示するには、ループ内で

を使用してください。
<div class="book_panel">
  <h4>Book Details</h4>
  <label for="author">Author <span>(Required)</span></label>
  <input type="text" name="author" id="author" value="<?php echo esc_attr( $author ); ?>" /><br/>
  <label for="isbn">ISBN <span>(Required)</span></label>
  <input type="text" name="isbn" id="isbn" value="<?php echo esc_attr( $isbn ); ?>" />
</div>
ログイン後にコピー

これにより、セットアップが完了します。 テーマの構造に一致するように、コード内のパスを調整することを忘れないでください。 より詳細なWordPressの知識については、「独自の邪悪なWordPressテーマを作成する」という私たちの出版物を考えてみましょう。

以上がWordPressのカスタム書き込みパネルのガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート