我制作了一个插件,我在其中创建了一个简单的联系表单。我在我的插件中添加了自定义帖子类型功能。我想要做的是当有人点击Add New
按钮时,它应该打开一个表单。我想只在后端做这件事。
这是我的代码:
在插件main.php文件backup.php
function contact()
{
echo '<form action="' . esc_url( $_SERVER['REQUEST_URI'] ) . '" method="post">';
echo '<p>';
echo 'Your Name (required) <br/>';
echo '<input type="text" name="cf-name" pattern="[a-zA-Z0-9 ]+" value="' . ( isset( $_POST["cf-name"] ) ? esc_attr( $_POST["cf-name"] ) : '' ) . '" size="40" />';
echo '</p>';
echo '<p>';
echo 'Your Email (required) <br/>';
echo '<input type="email" name="cf-email" value="' . ( isset( $_POST["cf-email"] ) ? esc_attr( $_POST["cf-email"] ) : '' ) . '" size="40" />';
echo '</p>';
echo '<p>';
echo 'Subject <br/>';
echo '<input type="text" name="cf-subject" pattern="[a-zA-Z ]+" value="' . ( isset( $_POST["cf-subject"] ) ? esc_attr( $_POST["cf-subject"] ) : '' ) . '" size="40" />';
echo '</p>';
echo '<p>';
echo 'Your Message <br/>';
echo '<textarea rows="10" cols="35" name="cf-message">' . ( isset( $_POST["cf-message"] ) ? esc_attr( $_POST["cf-message"] ) : '' ) . '</textarea>';
echo '</p>';
echo '<p><input type="submit" name="cf-submitted" value="Send"></p>';
echo '</form>';
}
这些是我在同一页面中的自定义类型函数backup.php我想调用上面的函数,即函数contact()
function register_backup() {
$labels = array(
'name' => _x( 'Backup', 'backup' ),
'add_new' => _x( 'Add New', 'contact()' ),
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => true,
'capability_type' => 'post'
);
register_post_type( 'backup', $args );
}
add_action( 'init', 'register_backup' );
// Function used to automatically create Music Reviews page.
function backup_plugin()
{
//post status and options
$post = array(
'comment_status' => 'open',
'ping_status' => 'closed' ,
'post_date' => date('Y-m-d H:i:s'),
'post_name' => 'backup',
'post_status' => 'publish' ,
'post_title' => 'Backup',
'post_type' => 'page',
);
//insert page and save the id
$newvalue = wp_insert_post( $post, false );
//save the id in the database
update_option( 'mrpage', $newvalue );
}
// // Activates function if plugin is activated
register_activation_hook( __FILE__, 'backup_plugin');
答案 0 :(得分:1)
你必须用jQuery覆盖“Add New”按钮,除非有人知道一个好的过滤器可以挂钩。 [注意此方法将在已翻译的管理区域中中断]。然后,您必须将表单放入管理菜单: