Intereting Posts
Страница пользовательского поиска и URL-адрес в многоязычном формате Как добавить класс в <body>, который генерируется <? Php body_class (); ? >> tag__in не возвращает сообщения Обновление метаданных сообщения в интерфейсе заказа woocommerce Редактирование страниц настроек? Автозагрузка и пространства имен в плагинах и темах WordPress: может ли это работать? Опасности, позволяющие разрешать доступ-Контроль-Разрешить-Происхождение: * только для фидов. Сообщения о расписании рассылки, без уведомления (3.7.1) Как перенести установку WordPress с одного сайта на другой, включая все изображения? Добавить Useragent в класс body? Подсчитайте количество сообщений для каждой категории template_redirect для отдельных сообщений с пользовательскими полями Можно ли применить meta_query к одному типу сообщения в запросе с многоуровневыми типами сообщений? Использование темы _s, изменения меню не влияют на меню заголовка Показать быстрые фрагменты в WordPress

Плагин для создания сообщений и форумов, затем выберите категорию и родительский форум

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

Просто создал GitHub Repo для моих файлов: https://github.com/maisdesign/MDPostEforumsCreator

Моя текущая установка: WordPress + BBPress + BuddyPress .

Вот как я хотел бы, чтобы он работал:

Он создает статьи и форум с тем же именем

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

После нажатия кнопки «Отправить» плагин создаст сообщение с этим заголовком, а также форум с этим заголовком.

Это мой код, который после некоторой помощи от @s_ha_dum (спасибо) теперь частично работает.

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

Я не могу найти документацию об этой функции BBPress.

Есть ли какой-либо эквивалент wp_dropdown_categories, но для BBPress?

Есть ли кто-нибудь, кто может мне помочь?

Файл index.php

<?php /* Plugin Name: Post And Forum Creator by MaisDesign & Stestaz Plugin URI: http://maisdesign.it Description: You give it a title and it automatically create a blank post and forum with that title, that's it! Version: 1.0.0 Author: MaisDesign & Stestaz Author URI: http://maisdesign.it License: License URI: */ /* Documentazione: Quello che sto cercando di ottenere è di svolgere tutto in una sola pagina, sono certo che non serva richiamare BBHOST e compagnia bella per inserire un cavolo di articolo ma sono le 2.20 AM e non so più che pesci pigliare! In fondo a questa pagina troverai del codice commentato, se ci sono bestemmie nei commenti lasciale dove stanno, sono di buon auspicio :-P */ /* Definiamo la versione */ if (!defined('MD_POSTFORUM_CREATOR_VERSION_KEY')) define('MD_POSTFORUM_CREATOR_VERSION_KEY', 'md_postforum_creator_version'); if (!defined('MD_POSTFORUM_CREATOR_VERSION_NUM')) define('MD_POSTFORUM_CREATOR_VERSION_NUM', '1.0.0'); add_option(MD_POSTFORUM_CREATOR_VERSION_KEY, MD_POSTFORUM_CREATOR_VERSION_NUM); /* * This example will work at least on WordPress 2.6.3, * but maybe on older versions too. */ add_action( 'admin_init', 'md_postforum_creator_init' ); add_action( 'admin_menu', 'md_postforum_creator_menu' ); function md_postforum_creator_init() { /* Register our stylesheet. */ wp_register_style( 'mdPostforumCreatorStyle', plugins_url('css/mdpostforumstyle.css', __FILE__) ); wp_register_script( 'mdPostforumCreatorScript', plugins_url( '/js/alajax-1.2.js', __FILE__ ) ); }; function md_postforum_creator_menu() { /* Register our plugin page */ $page = add_submenu_page( 'options.php', __( 'MDPFC Plugin', 'md-postforum-creator' ), __( 'MDPFC Plugin', 'md-postforum-creator' ), 'administrator', __FILE__, 'md_postforum_creator_manage_menu' ); /* Using registered $page handle to hook stylesheet loading */ add_action( 'admin_print_styles-' . $page, 'md_postforum_creator_styles' ); add_action('admin_print_scripts-' . $page, 'md_postforum_creator_scripts'); }; function md_postforum_creator_styles() { /* * It will be called only on your plugin admin page, enqueue our stylesheet here */ wp_enqueue_style( 'mdPostforumCreatorStyle' ); }; function md_postforum_creator_scripts() { /* Link our already registered script to a page */ wp_enqueue_script( 'mdPostforumCreatorScript' ); }; /*function md_postforum_creator_manage_menu() { };*/ add_action('admin_menu', 'register_md_postforum_creator_menu'); function register_md_postforum_creator_menu() { add_menu_page( 'MDPFC Options', // $page_title 'MDPFC Options', // $menu_title 'manage_options', // $capability 'md-postforum-creator-menu-page-slug', // $menu_slug 'md_postforum_creator_menu_page', // $function plugins_url( 'md-postforum-creator/images/mdpostforum.png' ), /* $icon_url*/ 3 ); /* $position*/ }; function md_postforum_creator_menu_page() { /* Does the user have the right permissions?*/ if (!current_user_can('manage_options')) { wp_die( 'Sorry, you do not have permission to access this page.'); }; if(isset($_POST['new_post']) == '1') { $post_title = $_POST['post_title']; $post_category = $_POST['cat']; $post_content = $_POST['post_content']; $new_post = array( 'ID' => '', 'post_author' => $user->ID, 'post_category' => array($post_category), 'post_content' => '', 'post_title' => wp_strip_all_tags($post_title), 'post_status' => 'draft' ); $post_id = wp_insert_post($new_post); if (is_plugin_active('bbpress/bbpress.php')) { $forum_id = bbp_insert_forum( array( /*'post_parent' => bbp_get_group_forums_root_id(),*/ 'post_title' => $post_title, /*'post_content' => $group->description,*/ 'post_status' => 'draft' ) ); /*$default_forum = array( $_POST['post_title'] => array($post_category), ); $forum = bbp_insert_forum( $default_forum );*/ }; }; echo ' <form action="'.admin_url('admin.php?page=md-postforum-creator-menu-page-slug').'" method="post"> <input type="text" name="post_title" size="45" id="input-title"/> <input type="hidden" name="new_post" value="1"/>'; wp_dropdown_categories('orderby=name&hide_empty=0&exclude=1&hierarchical=1'); echo '<input class="subput round" type="submit" name="submit" value="Post"/> </form>'; };?> 

Solutions Collecting From Web of "Плагин для создания сообщений и форумов, затем выберите категорию и родительский форум"

Если это полный код для ste.php вы загружаете его без какого-либо контекста WordPress, а это значит, что функции, такие как wp_insert_post , не будут определены. Если вы проверите журналы своего сервера, вы, вероятно, увидите ошибки в этом отношении.

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

 function md_postforum_creator_menu_page() { /* Does the user have the right permissions?*/ if (!current_user_can('manage_options')) { wp_die( 'Sorry, you do not have permission to access this page.'); }; if (!empty($_POST)) { md_post_creator_inserimento_post(); } _e('<h3>Generates Posts and Forums</h3>','md_postforum_creator'); echo '<h3>My Custom Menu Page</h3>'; echo '<div class="mdpostform container"> <form action="'.admin_url('admin.php?page=md-postforum-creator-menu-page-slug').'" method="post"> <div class="descmdpost"><p>'; _e('Nome Clan','md_postforum_creator'); echo '</p></div> <div class="imputpost"><input name="name" type="text" id="name" value="'.$_POST['name'].'"></div> <div class="clickmdpost"><input name="button" type="submit" value="Invia"></div> </form> </div>'; }; 

Я должен добавить, что во время тестирования я заметил некоторые notices , которые вы должны очистить. Включите отладку, и вы увидите их. Я бы лучше $_POST данные $_POST , если бы это был я.