parent_theme );
}
$theme_version = $theme_info->display( 'Version' );
return $theme_version;
}
/**
* Register the required plugins for this theme.
*
* @link https://github.com/TGMPA/TGM-Plugin-Activation
*/
function beagency_register_required_plugins() {
// Required plugin.
$plugins = array(
array(
'name' => 'BeAgency Lite Plugin',
'slug' => 'beagency-lite-plugin',
'source' => get_template_directory_uri() . '/plugins/beagency-lite-plugin.zip',
'required' => true,
'version' => '1.0.1',
'force_activation' => true,
'force_deactivation' => true
),
);
// Array of configuration settings.
$config = array(
'id' => 'beagency_tgmpa',
'default_path' => '',
'menu' => 'beagency-install-plugins',
'parent_slug' => 'themes.php',
'capability' => 'edit_theme_options',
'has_notices' => true,
'dismissable' => true,
'is_automatic' => true
);
tgmpa( $plugins, $config );
}
add_action( 'tgmpa_register', 'beagency_register_required_plugins' );
/**
* Include the Portfolio template for the content.
*/
function beagency_portfolio_ajax() {
get_template_part( 'template-parts/content', 'portfolio-ajax' );
wp_die();
}
add_action( 'wp_ajax_portfolio_ajax', 'beagency_portfolio_ajax' );
add_action( 'wp_ajax_nopriv_portfolio_ajax', 'beagency_portfolio_ajax' );
/**
* The notification to upgrade to Pro version.
*
* @return string $output The upgrade notification.
*/
function beagency_premium_info() {
$output = sprintf (
'%1$s BeAgency Pro %3$s %5$s %6$s.',
esc_html__( 'Upgrade to', 'beagency' ),
esc_url( 'http://betheme.me/themes/beagency/' ),
esc_html__( 'to enjoy', 'beagency' ),
esc_url( 'http://betheme.me/themes/beagency/?TB_iframe=true&width=1024&height=800' ),
esc_html__( 'Premium Features', 'beagency' ),
esc_html__( 'and support continued development', 'beagency' )
);
return $output;
}
/**
* Filter to remove thumbnail image dimension attributes.
*
* @return string $html The HTML codes without width and height attributes.
*/
function beagency_remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
$html = preg_replace( '/(width|height)=\"\d*\"\s/', '', $html );
return $html;
}
add_filter( 'post_thumbnail_html', 'beagency_remove_thumbnail_dimensions', 10, 3 );
/**
* Remove the content more link text.
*/
function beagency_remove_read_more_link() {
return false;
}
add_filter( 'the_content_more_link', 'beagency_remove_read_more_link' );
/**
* Change the excerpt length.
*/
function beagency_custom_excerpt_length( $length ) {
return 25;
}
add_filter( 'excerpt_length', 'beagency_custom_excerpt_length', 999 );
/**
* Change the excerpt more string at the end.
*/
function beagency_new_excerpt_more( $more ) {
return ' ...';
}
add_filter( 'excerpt_more', 'beagency_new_excerpt_more' );
/**
* Add support for excerpts in Pages.
*/
function beagency_add_excerpts() {
add_post_type_support( 'page', 'excerpt' );
}
add_action( 'init', 'beagency_add_excerpts' );
/**
* Add class to links generated by next_posts_link and previous_posts_link.
*/
function beagency_next_posts_link_attributes() {
return 'class="button button-lg"';
}
function beagency_previous_posts_link_attributes() {
return 'class="button button-lg"';
}
add_filter( 'next_posts_link_attributes', 'beagency_next_posts_link_attributes' );
add_filter( 'previous_posts_link_attributes', 'beagency_previous_posts_link_attributes' );
/**
* Set/unset post as image post type if post has thumbnail.
*
* @param int $post_id The post ID.
*/
function beagency_set_post_type( $post_id ) {
global $pagenow;
if ( in_array( $pagenow, array( 'post.php', 'post-new.php' ) ) ) {
if ( get_post_type( $post_id ) == 'post' ) {
if ( has_post_thumbnail( $post_id ) ) {
set_post_format( $post->ID, 'image' );
}
if ( ! has_post_thumbnail( $post_id ) ) {
set_post_format( $post->ID, '' );
}
}
}
}
add_action( 'save_post', 'beagency_set_post_type', 10, 3 );
/**
* Remove WordPress Admin Bar style from header.
*/
function beagency_remove_admin_bar_style() {
remove_action( 'wp_head', '_admin_bar_bump_cb' );
}
add_action( 'get_header', 'beagency_remove_admin_bar_style' );
/**
* Remove Recent Comments Widget style from header.
*/
function beagency_remove_recent_comments_style() {
global $wp_widget_factory;
remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) );
}
add_action( 'widgets_init', 'beagency_remove_recent_comments_style' );
/**
* Only show blog posts in search results.
*
* @param array $query The WP_Query object.
*/
function beagency_search_filter( $query ) {
if ( ! is_admin() && $query->is_main_query() ) {
if ( $query->is_search ) {
$query->set( 'post_type', array( 'post' ) );
}
}
}
add_filter( 'pre_get_posts', 'beagency_search_filter' );
/**
* Update option after Customizer save.
*/
function beagency_customize_save_after() {
update_option( 'blogname', Kirki::get_option( 'general_site_title' ) );
if ( Kirki::get_option( 'general_front_page' ) != '0' ) {
update_option( 'show_on_front ', 'page' );
update_option( 'page_on_front', Kirki::get_option( 'general_front_page' ) );
update_option( 'page_for_posts', Kirki::get_option( 'general_posts_page' ) );
}
}
add_action( 'customize_save_after', 'beagency_customize_save_after' );
/**
* Set option data when Customizer controls are initialized.
*/
function beagency_customize_controls_init() {
set_theme_mod( 'general_site_title', get_bloginfo( 'name' ) );
set_theme_mod( 'general_front_page', get_option( 'page_on_front' ) );
set_theme_mod( 'general_posts_page', get_option( 'page_for_posts' ) );
}
add_action( 'customize_controls_init', 'beagency_customize_controls_init' );
/**
* Enqueue scripts and styles for admin pages.
*/
function beagency_admin_scripts() {
$screen = get_current_screen();
if( $screen->id === 'themes' || $screen->id === 'update-core' ) {
wp_enqueue_script( 'betheme-admin-script', get_template_directory_uri() . '/js/admin.js', array( 'jquery' ), beagency_get_version(), true );
}
// Localize the script with new data.
wp_localize_script( 'betheme-admin-script', 'admin_vars', array(
'upgrade_available' => esc_html__( 'Upgrade to Pro Version', 'beagency' ),
'upgrade_info' => beagency_premium_info()
) );
}
add_action( 'admin_enqueue_scripts', 'beagency_admin_scripts' );