WordPress как на ладони
wordpress jino

Таксономия как обязательное поле

Как сделать собственную таксономию обязательной для заполнения при создании поста?

kolshix 6 месяцев назад

Тоже интересует этот вопрос, может кто-то знает ? ещё интересует вопрос как сделать автоматическое выставление таксономии, если ни одна не выбрана как в category=uncategoryes

Kama 6 месяцев назад
1
Matrom23 6 месяцев назад
  • 1
    Kama4486

    Если тебе нужно, чтобы пост не публиковался или не сохранялся, если для него не установлен термин, то думаю нужно писать JS скрипт.

    Вот ответ на твой вопрос - http://wordpress.stackexchange.com/questions/15546/dont-publish-custom-post-type-post-if-a-meta-data-field-isnt-valid/15627#15627

    Добавляешь такие коды в functions.php темы:

    add_action('wp_print_scripts','my_publish_admin_hook');
    
    function my_publish_admin_hook(){
    if (is_admin()){
    		?>
    		<script language="javascript" type="text/javascript">
    			jQuery(document).ready(function() {
    				jQuery('#post').submit(function() {
    
    					var form_data = jQuery('#post').serializeArray();
    					form_data = jQuery.param(form_data);
    					var data = {
    						action: 'my_pre_submit_validation',
    						security: '<?php echo wp_create_nonce( 'pre_publish_validation' ); ?>',
    						form_data: form_data
    					};
    					jQuery.post(ajaxurl, data, function(response) {
    						if (response.indexOf('True') > -1 || response.indexOf('true') > -1 || response = true ||  response) {
    							jQuery('#ajax-loading').hide();
    							jQuery('#publish').removeClass('button-primary-disabled');
    							return true;
    						}else{
    							alert("please correct the following errors: " + response);
    							jQuery('#ajax-loading').hide();
    							jQuery('#publish').removeClass('button-primary-disabled');
    							return false;
    						}
    					});
    					return false;
    				});
    			});
    		</script>
    		<?php
    	}
    }

    Теперь функцию для AJAX проверки

    add_action('wp_ajax_my_pre_submit_validation', 'pre_submit_validation');
    function pre_submit_validation(){
    	// защита
    	check_ajax_referer( 'pre_publish_validation', 'security' );
    
    	// Првоерка
    	if( !empty($_POST['form_data']['поле таксы']) ){
    		echo 'true';
    	}
    
    	die();
    }

    И почитай этот ответ АНГЛ - http://wordpress.stackexchange.com/questions/19063/require-a-custom-taxonomy-to-be-checked

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.