Вопрос: Как добавить метабокс, чтобы получить список пользовательских сообщений (любых двух) на экране редактирования или добавления сообщения?

Я хочу добавить метабокс, чтобы получить список пользовательских сообщений и выбрать любые два из них на экране редактирования или добавления сообщения. И наконец, когда публикация опубликована, отобразите их на одной странице поста. Пожалуйста, помогите мне! Любая помощь будет принята с благодарностью ....

    add_action( 'add_meta_boxes', function () {    add_meta_box(        'yourcustom_sectionid',         __( '???? Custom Offer Section', 'yourtextdomain' ),         function ( $post ) {            wp_nonce_field( plugin_basename( __FILE__ ), 'yourcustom_noncename' );            $cstm = get_post_meta(get_the_ID(),'yourcustom_meta',true);            echo "<pre>".print_r($cstm,true)."</pre>";            $getPostsToSelect = get_posts('post_type=offers&numberposts=-1');foreach ($getPostsToSelect as $aPostsToSelect) {    ?>    <label>        <input           type='checkbox'           name='yourcustom_meta[]'           class='postsToSelect'          value='<?php echo $aPostsToSelect->ID ?>'         />         <?php echo $aPostsToSelect->post_title ?>    </label><br />    <?php}        },         'listing'    );} );

, а затем ниже:

echo "<script type='text/javascript'>  var limit = 2;jQuery('input.single-checkbox').on('change', function(evt) {   if(jQuery('input.single-checkbox:checked').length > limit) {       this.checked = false;   }});</script>";

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

результат, который я получил до сих пор, с 4 пользовательскими сообщениями с именем offerin на изображении, показанном ниже введите описание изображения здесь

<

Ответы и комментарии:

Какие решения вы уже пробовали?
Создан 20-03-2018 06:35 Krzysiek Dróżdż

я просто добавил metabox как-то на экране редактирования! основной метабокс с текстовой областью. Пожалуйста, помогите мне с конкретным кодом.
Создан 21-03-2018 02:22 Nimesh

Спасибо за инструкцию, я новичок в php .... было бы здорово, если вы можете помочь мне с кодом, у меня есть готовый тип записи cust, это так (листинг). как бы мне получить метабокс там, и внутри этого метабокса мы можем выбрать два опубликованных поста. Следующим механизмом после выбора мы можем распечатать их на отдельной странице поста (листинга). Благодарю вас! Пожалуйста, помогите мне с определенным кодом и, если возможно, направьте меня. У меня не так много опыта.
Создан 21-03-2018 01:21 Nimesh

я добавил метабокс, но он выглядит пустым, как вы можете видеть на скриншоте ibb.co/esdwAH
Создан 21-03-2018 02:23 Nimesh

я обновил вопрос только сейчас .. Пожалуйста, помогите мне @ Дэвид-меч
Создан 21-03-2018 03:57 Nimesh


Вы можете добавить метакоробка в окне редактирования с
add_action( 'add_meta_boxes', функция () {
add_meta_box(
'yourcustom_sectionid',
__( '???? Пользовательские мета-поле', 'yourtextdomain' ),
функция ( $пост ) {
wp_nonce_field( plugin_basename( __файл__ ), 'yourcustom_noncename' );
$cstm = get_post_meta(get_the_ID(),'yourcustom_meta',истина);
Эхо "<пред>".print_r (cstm$, правда)."заранее>";
},
'страницы'
);
} );

Вы можете должностей запрос с get_posts() и добавить некоторые флажки внутри этой метакоробка
$getPostsToSelect = get_posts('post_type равно=пост&numberposts=-1');
по каждому элементу ($getPostsToSelect как $aPostsToSelect) {
?>
<метка>
<ввод
флажок тип=''
имя='yourcustom_meta[]'
postsToSelect класс=''
значение='<?PHP Эхо $aPostsToSelect->документы ?>'
/>
<?PHP Эхо $aPostsToSelect->post_title ?>
метка>
в
<?в PHP
}

Ты не нужен jQuery, чтобы ограничиться только 2 выбранных. Это будет что-то вроде
ВАР лимит = 2;
ввод в jQuery ('.один-флажок').на('Изменить', функция(ЭВТ) {
если(вход с jQuery ('.один флажок:проверено').длина > предел) {
это.проверено = ложь;
}
});

Ты спасешь все это что-то вроде :
функция add_action( 'save_post', ( $post_id ) {

если ( определенными( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
возврат;
если ( !wp_verify_nonce( $_POST, где['yourcustom_noncename'], plugin_basename( __файл__ ) ) )
возврат;
если ( 'страницы' == $_POST, где['post_type равно'] ) { // не пост типа
если ( !current_user_can( 'edit_page', $post_id ) )
возврат;
} еще {
если ( !current_user_can( 'edit_post', $post_id ) )
возврат;
}

update_post_meta($post_id,'yourcustom_meta',$_POST, где['yourcustom_meta']);
});

Затем в single.php или везде, где ваш цикл заключается в том, что вы хотите их показать, ты бы просто назвал их:
$cstm = get_post_meta(get_the_ID(),'yourcustom_meta',истина);
по каждому элементу ($cstm как $aPostToDisplay) {
Эхо "<пре>{$aPostToDisplay->идентификатор} - {$aPostToDisplay->post_title} и";
}

Обратите внимание, что я передал эту (не проверял), так что копировать/вставить не получится.. это больше логика идентификатор GUID.
Я считаю, что без двойной проверки, что имя='yourcustom_meta[]' пройдет только проверенных и близких к $_POST, где['yourcustom_meta'], но вы, возможно, захотите, чтобы убедиться, что.
Я также использовать анонимные функции, которые, вероятно, не должны использоваться, если это для публичных плагин/тему.
Создан 20-03-2018 05:29 David Sword2,7071525