Post form as custom post

时间:2014-01-19 作者:4ndro1d

我是WordPress的新手,需要创建一个包含特殊表单的网站,我可以用它上传照片,在OpenStreetMap上设置位置,并从几个下拉菜单中进行选择。

在这里,您可以找到一个它应该是什么样子的示例:enter image description here

我已经做到了:

使用表单创建页面模板

<form id="new_post" name="new_post" method="post" action="" enctype="multipart/form-data">

    <?php if ( 0 == $current_user->ID ) {
                     wp_loginout(); 
                     echo " to submit a post";
                } else {
                  echo \'<fieldset class="submit">
                            <input type="submit" value="Los" tabindex="40" id="submit" name="submit" />
                        </fieldset>
                        <input type="hidden" name="action" value="new_post" />\';
                        wp_nonce_field( "new-post" ); } ?>
提交表单时,将执行以下php代码:

if( \'POST\' == $_SERVER[\'REQUEST_METHOD\'] && !empty( $_POST[\'action\'] ) &&  $_POST[\'action\'] == "new_post") {    
    $new_post = array(
            \'post_title\'    =>  "roadkill entry",
            \'post_content\'  =>  "testcontent",
            \'post_category\' =>  array(0),
            \'post_status\'   =>  \'publish\',
            \'post_type\' =>  \'roadkills\' // this is my custom post   );

    $pid = wp_insert_post($new_post);

    $link = get_permalink( $pid );
    wp_redirect( $link );
}
但我将以找不到的页面结束。http://www.citizen-science.at/wordpress/roadkill/eintrag-hinzufugen/

当我通过管理GUI创建条目时,我可以查看单个帖子,但不能查看存档http://www.citizen-science.at/wordpress/roadkills/dafdf/

哦,是的,我是这样注册我的帖子类型的:

<?php 
add_action( \'init\', \'create_post_type\' );
function create_post_type() {
    register_post_type( \'roadkills\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Roadkills\' ),
                \'singular_name\' => __( \'Roadkill\' )
            ),
        \'public\' => true,
        \'has_archive\' => true,
        )
    );
}
我错过了什么?(我昨天已经让它工作了,但不知怎的它坏了)

3 个回复
最合适的回答,由SO网友:4ndro1d 整理而成

我只能通过创建另一个自定义帖子类型(使用另一个名称)来解决这个问题。后来一切都很好。对不起,我对此没有任何解释。

SO网友:flowdee

我建议尝试以下代码:

<?php 
add_action( \'init\', \'create_post_type\' );
function create_post_type() {
    register_post_type( \'roadkills\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Roadkills\' ),
                \'singular_name\' => __( \'Roadkill\' )
            ),
        \'public\' => true,
        \'has_archive\' => true,
        \'rewrite\' => array(\'slug\' => \'roadkills\')
        )
    );
}
我想失踪的人\'rewrite\' => array(\'slug\' => \'roadkills\') 在register post类型中,函数会导致permalink错误,可以通过添加上面的行来解决。

SO网友:Sudeep K Rana

在主题文件夹中创建页面名称archive-{YOUR_POST_TYPE}.php. 在你的情况下archive-roadkills.php. 测试存档页是否正在捕获此页?

如果是,则可以按您喜欢的方式编辑页面。是否从现有存档中复制代码。php或您自己的。

参考号:Template Hierarchy Codex

结束

相关推荐

Using AJAX with Forms

我试图在WordPress中使用AJAX验证并提交表单,但是,我得到的响应是0。根据the codex, 这似乎表明admin ajax无法找到我定义的函数。我做错了什么?代码(为了演示而简化)<script type="text/javascript"> jQuery(function() { jQuery(document).on(\'click\', \'#test-button\', function() {