Created
December 1, 2017 13:14
-
-
Save mihdan/b9d972ffce6145cf2cd32e12b434100d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Добавить свои поля в настройки "Написание" | |
* | |
* @author Mikhail Kobzarev <[email protected]> | |
*/ | |
function teamrussia_add_option_field_to_writing_admin_page(){ | |
register_setting( 'writing', 'default_magazine_category' ); | |
register_setting( 'writing', 'default_news_category' ); | |
add_settings_field( | |
'default_news_category', | |
'Основная категория Новостей', | |
'teamrussia_add_default_news_category_field', | |
'writing', | |
'default', | |
array( | |
'id' => 'default_news_category', | |
'option_name' => 'default_news_category' | |
) | |
); | |
add_settings_field( | |
'default_magazine_category', | |
'Основная категория Олимпийского журнала', | |
'teamrussia_add_default_magazine_category_field', | |
'writing', | |
'default', | |
array( | |
'id' => 'default_magazine_category', | |
'option_name' => 'default_magazine_category' | |
) | |
); | |
} | |
add_action( 'admin_menu', 'teamrussia_add_option_field_to_writing_admin_page' ); | |
/** | |
* Генерим дропдаун с категориями новостей | |
* | |
* @param array $val массив с идентификатором и имененм поля | |
* | |
* @author Mikhail Kobzarev <[email protected]> | |
*/ | |
function teamrussia_add_default_news_category_field( $val ) { | |
wp_dropdown_categories( array( | |
'hide_empty' => 0, | |
'name' => $val['option_name'], | |
'orderby' => 'name', | |
'selected' => get_option( $val['option_name'] ), | |
'taxonomy' => 'news_category', | |
) ); | |
} | |
/** | |
* Генерим дропдаун с категориями олимпийского журнала | |
* | |
* @param array $val массив с идентификатором и имененм поля | |
* | |
* @author Mikhail Kobzarev <[email protected]> | |
*/ | |
function teamrussia_add_default_magazine_category_field( $val ) { | |
wp_dropdown_categories( array( | |
'hide_empty' => 0, | |
'name' => $val['option_name'], | |
'orderby' => 'name', | |
'selected' => get_option( $val['option_name'] ), | |
'taxonomy' => 'magazine_category', | |
) ); | |
} | |
/** | |
* При сохранении поста Новостей | |
* ставит дефолтную категорию, если не указана | |
* | |
* @param int $post_id идентификатор поста | |
* @param WP_Post $post объект поста | |
* @param bool $update флаг, что идет обновление поста | |
* | |
* @author Mikhail Kobzarev <[email protected]> | |
*/ | |
function teamrussia_save_post_news( $post_id, $post, $update ) { | |
// Смотрим, какие категории указаны | |
$categories = wp_get_object_terms( $post_id, 'news_category' ); | |
//Если никакие не указаны - ставим по умолчанию | |
if ( ! $categories ) { | |
wp_set_object_terms( $post_id, absint( get_option( 'default_news_category' ) ), 'news_category' ); | |
} | |
} | |
add_action( 'save_post_news', 'teamrussia_save_post_news', 10, 3 ); | |
/** | |
* При сохранении поста Олимпийского журнала | |
* ставит дефолтную категорию, если не указана | |
* | |
* @param int $post_id идентификатор поста | |
* @param WP_Post $post объект поста | |
* @param bool $update флаг, что идет обновление поста | |
* | |
* @author Mikhail Kobzarev <[email protected]> | |
*/ | |
function teamrussia_save_post_magazine( $post_id, $post, $update ) { | |
// Смотрим, какие категории указаны | |
$categories = wp_get_object_terms( $post_id, 'magazine_category' ); | |
//Если никакие не указаны - ставим по умолчанию | |
if ( ! $categories ) { | |
wp_set_object_terms( $post_id, absint( get_option( 'default_magazine_category' ) ), 'magazine_category' ); | |
} | |
} | |
add_action( 'save_post_magazine', 'teamrussia_save_post_magazine', 10, 3 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment