【问题标题】:How create new custom fields for my Theme in Wordpress如何在 Wordpress 中为我的主题创建新的自定义字段
【发布时间】:2020-12-27 22:20:11
【问题描述】:

我创建了一个超级简单的主题。我想要的是能够为每个帖子和页面定义一个包含 3 个字段的数组。

例如具有以下字段:名称、链接和类型的下拉列表

此外,我想为每个帖子/页面添加这些“字段集”的多个项目。我找不到任何关于此的文档,但总是在 Google 中找到导致我使用 WP Plugins 的结果。一般来说,这很好,因为在这种情况下,这似乎可以通过编程方式实现,但不好的原因是我找不到任何关于此的信息。

希望有人可以帮助我。

【问题讨论】:

  • 你看过官方文档了吗?如果没有,这是一个很好的起点:Custom Fields - WordPress.org。就我个人而言,我只会使用一个插件,因为它们通常提供比普通自定义字段所能提供的更高级的功能(但前提是我需要比某些输入字段更复杂的东西。)

标签: wordpress wordpress-theming


【解决方案1】:

您正在寻找带有add_meta_box() 功能的自定义元框:

向一个或多个屏幕添加元框。

还有add_meta_boxes 动作钩子。

在添加所有内置元框后触发:

一个简单的例子是,如果我们想添加一个“正在听...”自定义元框,以便在写帖子时分享我们的心情。

<?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 ); ?>

了解详情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 2016-04-11
    • 2019-08-05
    相关资源
    最近更新 更多