Добавить опцию Settings API. В коде опцию считать и подставить в параметры. И да, приучитесь параметры передавать массивом, удобнее же:
$args = array(
'showposts' => get_option( 'popular_posts_num' ),
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'cat' => 2,
);
$populargb = new WP_Query( $args );
Собственно, добавление опции:
function custom_query_settings() {
// Секция настроек
add_settings_section(
'custom_query_settings_section',
'Custom query settings section description',
'custom_query_settings_section_callback',
'reading' // В какой раздел настроек добавляем ("Чтение")
);
// Поле с настройкой
add_settings_field(
'popular_posts_num',
'Custom option name',
'custom_query_settings_callback',
'reading',
'custom_query_settings_section'
);
// Регистрируем опцию, чтобы WP ее видел
register_setting( 'reading', 'popular_posts_num' );
}
add_action( 'admin_init', 'custom_query_settings' );
// Коллбек для секции (выводит описание секции)
function custom_query_settings_section_callback() {
echo '<p>Intro text for our settings section</p>';
}
// Коллбек для настройки (выводит поле для ввода в админке)
function custom_query_settings_callback() {
echo '<input name="popular_posts_num" id="popular_posts_num" type="number" value="' . get_option( 'popular_posts_num' ) . '" class="small-text" step="1" min="1">';
}