Публикация из интерфейса с типами записей, категориями и таксономиями


Сейчас я разрабатываю сайт WordPress, который будет чем-то вроде каталога. Люди смогут отправлять пошаговые руководства, расширенные обзоры, а также чит-коды для игр. Мы собирались сделать разные формы для каждой страницы, но теперь мы решили, что одна форма с выпадающим списком будет просто великолепна.

Похоже, что там нет хорошего плагина, который я могу найти, который учитывает тот факт, что каждую отправку необходимо продвигать как "ожидающую сообщение", но также и к определенному типу сообщения.

Например, форма, которую мы будем использовать, будет настроена следующим образом:

Game name: <post title>
Platform:  <Taxonomy>
Category:  <Category> (role playing, FPS, adventure, etc..)
This is a: () Review () Tutorial () Cheat list  <this is the post type>
Content: <post body>
Tags: <tags>
[Submit]

После отправки мне нужно, чтобы обзор, чит или учебник были установлены в качестве ожидающей публикации в типе публикации, выбранном из радиобоксов.

В настоящее время я использую интерфейс пользователя WP, но, вероятно, я мог бы использовать любую запись из формы интерфейса, которая предлагается для простейшей модификации. Добавлять новые поля в форму легко, а заставлять их что-то делать - сложно! Я бы ценю любую помощь, которую я могу получить в этом, наш веб-сайт как бы вращается вокруг этих функций.

Author: Lynne, 2011-02-26

2 answers

Похоже, что Гравитационные формы могут это сделать. Я просто быстро поискал на форумах поддержки и нашел это, ответ кому-то, кто задает почти тот же вопрос, что и вы:

Гравитационные формы можно использовать для создания пользовательских типов записей, а также пользовательских таксономии, однако это не делается из коробки. Это требует использования доступных крючков, чтобы определить формы гравитации чтобы использовать пользовательский тип записи или пользовательский таксономия вместо значения по умолчанию. По умолчанию это использует стандартный WordPress Сообщения, категории и теги.

Так что да, это возможно, но для этого требуется некоторый пользовательский код. Когда вы будете готовы реализовать это, вы можете выполнить поиск на форумах можно найти примеры кода, как это делали многие люди, или вы можете опубликовать новое сообщение с описанием того, что вы пытаетесь сделать, и запросить некоторую помощь, и мы можем помочь вам с базовыми фрагментами кода, чтобы вы начали.

В будущем мы планируем создать дополнение , которое позволит много проще создавать пользовательские типы записей и использовать пользовательские таксономии.

 4
Author: Simon Blackbourn, 2011-02-26 18:07:05

Есть несколько бесплатных плагинов, которые позволяют отправлять сообщения с веб-интерфейса:

И более высокооплачиваемым было бы:

Но ни один из них не даст вам гибкости в качестве пользовательского кода для ваших нужд, и на самом деле сообщение с внешнего интерфейса - это вопрос отображения формы и ее обработки, поэтому, следуя вашему варианту использования, ваш форма будет примерно такой:

<!-- New game Post Form -->
<div id="postbox">
<form id="new_post" name="new_post" method="post" action="">

<!-- game name -->
<p><label for="title">Game name</label><br />
<input type="text" id="title" value="" tabindex="1" size="20" name="title" />
</p>

<!-- game platform assuming that the taxonomy is named platform -->
<p><label for="Platform">Platform:</label><br />
<p><?php wp_dropdown_categories( 'show_option_none=Platform&tab_index=4&taxonomy=platform' ); ?></p>

<!-- game Category -->
<p><label for="Category">Category:</label><br />
<p><?php wp_dropdown_categories( 'show_option_none=Category&tab_index=4&taxonomy=category' ); ?></p>

<!-- game post type assuming that the post types are named: review,tutorial,cheat_list-->
<p><label for="post_type">This is a:</label><br />
<p><select name="post_type" id="post_type">
    <option value="review">Review</option>
    <option value="tutorial">Tutorial</option>
    <option value="cheat_list"> Cheat list</option>
</select></p>

<!-- game Content -->
<p><label for="description">Content</label><br />
<textarea id="description" tabindex="3" name="description" cols="50" rows="6"></textarea>
</p>

<!-- game tags -->
<p><label for="post_tags">Tags:</label>
<input type="text" value="" tabindex="5" size="16" name="post_tags" id="post_tags" /></p>
<p align="right"><input type="submit" value="Publish" tabindex="6" id="submit" name="submit" /></p>

<input type="hidden" name="action" value="new_game_post" />
<?php wp_nonce_field( 'new-post' ); ?>
</form>
</div>

И ваша обработка формы будет следующей:

if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) &&  $_POST['action'] == "new_game_post") {

    // Do some minor form validation to make sure there is content
    if (isset ($_POST['title'])) {
        $title =  $_POST['title'];
    } else {
        echo 'Please enter a game  title';
    }
    if (isset ($_POST['description'])) {
        $description = $_POST['description'];
    } else {
        echo 'Please enter the content';
    }
    $tags = $_POST['post_tags'];

    // Add the content of the form to $post as an array
    $new_post = array(
        'post_title'    => $title,
        'post_content'  => $description,
        'post_category' => array($_POST['cat']),  // Usable for custom taxonomies too
        'tags_input'    => array($tags),
        'post_status'   => 'publish',           // Choose: publish, preview, future, draft, etc.
        'post_type' => $_POST['post_type']  // Use a custom post type if you want to
    );
    //save the new post
    $pid = wp_insert_post($new_post); 
    //insert taxonomies
    wp_set_post_terms($pid,array($_POST['Platform']),'platform',true);
}

Это не идеально, но это начало, и вы должны понять идею.

Надеюсь, это поможет

 4
Author: Bainternet, 2020-06-15 08:21:38