如何在 Wordpress 中为我的主题创建新的自定义字段
How create new custom fields for my Theme in Wordpress
我创建了一个超级简单的主题。我想要的是能够为每个 post 和页面定义一个包含 3 个字段的数组。
例如具有以下字段:名称、Link 和类型
的下拉列表
此外,我想为每个 post/page 添加这些“字段集”的多个项目。我找不到关于此的任何文档,但总是导致 Google,这让我找到了 WP 插件。总的来说,这很好,因为在这种情况下,这似乎可以通过编程方式实现,但不好,因为我找不到任何类型的信息。
希望有人能帮助我。
您正在寻找具有 add_meta_box()
功能的自定义元框:
Adds a meta box to one or more screens.
还有 add_meta_boxes
动作挂钩。
Fires after all built-in meta boxes have been added:
一个简单的例子是,如果我们想添加一个“正在听……”自定义元框,以便在写 post 时分享我们的心情。
<?php
add_action( 'add_meta_boxes', 'add_meta_listening_to' );
function add_meta_listening_to() {
add_meta_box(
'meta_listening_to', //id
'Listening to ...', //title
'listeningto', //callback
'post', //screen &/or post type
'normal', //context
'high', //priority
null //callback_args
);
};
function listeningto( $post ) { //function handle same as callback
$ListeningToInput = get_post_meta( $post->ID, 'ListeningToInput', true );
echo '<input name="listening_to_input" type="text" placeholder="Listening to ..." value="'. $ListeningToInput .'" style="width:100%;">';
};
add_action( 'save_post', 'save_meta_listening_to' );
function save_meta_listening_to( $post_ID ) {
if ( isset( $_POST[ 'listening_to_input' ] ) ) {
update_post_meta( $post_ID, 'ListeningToInput', esc_html( $_POST[ 'listening_to_input' ] ) );
};
}; ?>
然后在前端显示,我们将使用以下内容:
<?php echo get_post_meta( $post->ID, 'ListeningToInput', true ); ?>
了解更多
我创建了一个超级简单的主题。我想要的是能够为每个 post 和页面定义一个包含 3 个字段的数组。
例如具有以下字段:名称、Link 和类型
的下拉列表此外,我想为每个 post/page 添加这些“字段集”的多个项目。我找不到关于此的任何文档,但总是导致 Google,这让我找到了 WP 插件。总的来说,这很好,因为在这种情况下,这似乎可以通过编程方式实现,但不好,因为我找不到任何类型的信息。
希望有人能帮助我。
您正在寻找具有 add_meta_box()
功能的自定义元框:
Adds a meta box to one or more screens.
还有 add_meta_boxes
动作挂钩。
Fires after all built-in meta boxes have been added:
一个简单的例子是,如果我们想添加一个“正在听……”自定义元框,以便在写 post 时分享我们的心情。
<?php
add_action( 'add_meta_boxes', 'add_meta_listening_to' );
function add_meta_listening_to() {
add_meta_box(
'meta_listening_to', //id
'Listening to ...', //title
'listeningto', //callback
'post', //screen &/or post type
'normal', //context
'high', //priority
null //callback_args
);
};
function listeningto( $post ) { //function handle same as callback
$ListeningToInput = get_post_meta( $post->ID, 'ListeningToInput', true );
echo '<input name="listening_to_input" type="text" placeholder="Listening to ..." value="'. $ListeningToInput .'" style="width:100%;">';
};
add_action( 'save_post', 'save_meta_listening_to' );
function save_meta_listening_to( $post_ID ) {
if ( isset( $_POST[ 'listening_to_input' ] ) ) {
update_post_meta( $post_ID, 'ListeningToInput', esc_html( $_POST[ 'listening_to_input' ] ) );
};
}; ?>
然后在前端显示,我们将使用以下内容:
<?php echo get_post_meta( $post->ID, 'ListeningToInput', true ); ?>