* add_action( 'after_setup_theme', 'my_child_theme_setup' );
* function my_child_theme_setup() {
* // We are providing our own filter for excerpt_length (or using the unfiltered value)
* remove_filter( 'excerpt_length', 'twentyten_excerpt_length' );
* ...
* }
*
*
* For more information on hooks, actions, and filters, see https://codex.wordpress.org/Plugin_API.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
/*
* Set the content width based on the theme's design and stylesheet.
*
* Used to set the width of images and content. Should be equal to the width the theme
* is designed for, generally via the style.css stylesheet.
*/
if ( ! isset( $content_width ) )
$content_width = 640;
/* Tell WordPress to run twentyten_setup() when the 'after_setup_theme' hook is run. */
add_action( 'after_setup_theme', 'twentyten_setup' );
if ( ! function_exists( 'twentyten_setup' ) ):
/**
* Set up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which runs
* before the init hook. The init hook is too late for some features, such as indicating
* support post thumbnails.
*
* To override twentyten_setup() in a child theme, add your own twentyten_setup to your child theme's
* functions.php file.
*
* @uses add_theme_support() To add support for post thumbnails, custom headers and backgrounds, and automatic feed links.
* @uses register_nav_menus() To add support for navigation menus.
* @uses add_editor_style() To style the visual editor.
* @uses load_theme_textdomain() For translation/localization support.
* @uses register_default_headers() To register the default custom header images provided with the theme.
* @uses set_post_thumbnail_size() To set a custom post thumbnail size.
*
* @since Twenty Ten 1.0
*/
function twentyten_setup() {
// This theme styles the visual editor with editor-style.css to match the theme style.
add_editor_style();
// Post Format support. You can also use the legacy "gallery" or "asides" (note the plural) categories.
// add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
// This theme uses post thumbnails
add_theme_support( 'post-thumbnails' );
// Add default posts and comments RSS feed links to head
add_theme_support( 'automatic-feed-links' );
/*
* Make theme available for translation.
* Translations can be filed in the /languages/ directory
*/
load_theme_textdomain( 'twentyten', get_template_directory() . '/languages' );
// This theme uses wp_nav_menu() in one location.
register_nav_menus( array(
'primary' => __( 'Primary Navigation', 'twentyten' ),
'footer' => __( 'Footer Navigation', 'twentyten' ),
'top' => __( 'Top Navigation', 'twentyten' )
) );
// This theme allows users to set a custom background.
add_theme_support( 'custom-background', array(
// Let WordPress know what our default background color is.
'default-color' => 'f1f1f1',
) );
// The custom header business starts here.
$custom_header_support = array(
/*
* The default image to use.
* The %s is a placeholder for the theme template directory URI.
*/
'default-image' => '%s/images/headers/path.jpg',
// The height and width of our custom header.
/**
* Filter the Twenty Ten default header image width.
*
* @since Twenty Ten 1.0
*
* @param int The default header image width in pixels. Default 940.
*/
'width' => apply_filters( 'twentyten_header_image_width', 940 ),
/**
* Filter the Twenty Ten defaul header image height.
*
* @since Twenty Ten 1.0
*
* @param int The default header image height in pixels. Default 198.
*/
'height' => apply_filters( 'twentyten_header_image_height', 198 ),
// Support flexible heights.
'flex-height' => true,
// Don't support text inside the header image.
'header-text' => false,
// Callback for styling the header preview in the admin.
'admin-head-callback' => 'twentyten_admin_header_style',
);
add_theme_support( 'custom-header', $custom_header_support );
if ( ! function_exists( 'get_custom_header' ) ) {
// This is all for compatibility with versions of WordPress prior to 3.4.
define( 'HEADER_TEXTCOLOR', '' );
define( 'NO_HEADER_TEXT', true );
define( 'HEADER_IMAGE', $custom_header_support['default-image'] );
define( 'HEADER_IMAGE_WIDTH', $custom_header_support['width'] );
define( 'HEADER_IMAGE_HEIGHT', $custom_header_support['height'] );
add_custom_image_header( '', $custom_header_support['admin-head-callback'] );
add_custom_background();
}
/*
* We'll be using post thumbnails for custom header images on posts and pages.
* We want them to be 940 pixels wide by 198 pixels tall.
* Larger images will be auto-cropped to fit, smaller ones will be ignored. See header.php.
*/
set_post_thumbnail_size( $custom_header_support['width'], $custom_header_support['height'], true );
// ... and thus ends the custom header business.
// Default custom headers packaged with the theme. %s is a placeholder for the theme template directory URI.
register_default_headers( array(
'berries' => array(
'url' => '%s/images/headers/berries.jpg',
'thumbnail_url' => '%s/images/headers/berries-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Berries', 'twentyten' )
),
'cherryblossom' => array(
'url' => '%s/images/headers/cherryblossoms.jpg',
'thumbnail_url' => '%s/images/headers/cherryblossoms-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Cherry Blossoms', 'twentyten' )
),
'concave' => array(
'url' => '%s/images/headers/concave.jpg',
'thumbnail_url' => '%s/images/headers/concave-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Concave', 'twentyten' )
),
'fern' => array(
'url' => '%s/images/headers/fern.jpg',
'thumbnail_url' => '%s/images/headers/fern-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Fern', 'twentyten' )
),
'forestfloor' => array(
'url' => '%s/images/headers/forestfloor.jpg',
'thumbnail_url' => '%s/images/headers/forestfloor-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Forest Floor', 'twentyten' )
),
'inkwell' => array(
'url' => '%s/images/headers/inkwell.jpg',
'thumbnail_url' => '%s/images/headers/inkwell-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Inkwell', 'twentyten' )
),
'path' => array(
'url' => '%s/images/headers/path.jpg',
'thumbnail_url' => '%s/images/headers/path-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Path', 'twentyten' )
),
'sunset' => array(
'url' => '%s/images/headers/sunset.jpg',
'thumbnail_url' => '%s/images/headers/sunset-thumbnail.jpg',
/* translators: header image description */
'description' => __( 'Sunset', 'twentyten' )
)
) );
}
endif;
if ( ! function_exists( 'twentyten_admin_header_style' ) ) :
/**
* Style the header image displayed on the Appearance > Header admin panel.
*
* Referenced via add_custom_image_header() in twentyten_setup().
*
* @since Twenty Ten 1.0
*/
function twentyten_admin_header_style() {
?>
' . __( 'Continue reading →', 'twentyten' ) . '';
}
endif;
/**
* Replace "[...]" with an ellipsis and twentyten_continue_reading_link().
*
* "[...]" is appended to automatically generated excerpts.
*
* To override this in a child theme, remove the filter and add your own
* function tied to the excerpt_more filter hook.
*
* @since Twenty Ten 1.0
*
* @param string $more The Read More text.
* @return string An ellipsis.
*/
function twentyten_auto_excerpt_more( $more ) {
if ( ! is_admin() ) {
return ' …' . twentyten_continue_reading_link();
}
return $more;
}
add_filter( 'excerpt_more', 'twentyten_auto_excerpt_more' );
/**
* Add a pretty "Continue Reading" link to custom post excerpts.
*
* To override this link in a child theme, remove the filter and add your own
* function tied to the get_the_excerpt filter hook.
*
* @since Twenty Ten 1.0
*
* @param string $output The "Coninue Reading" link.
* @return string Excerpt with a pretty "Continue Reading" link.
*/
function twentyten_custom_excerpt_more( $output ) {
if ( has_excerpt() && ! is_attachment() && ! is_admin() ) {
$output .= twentyten_continue_reading_link();
}
return $output;
}
add_filter( 'get_the_excerpt', 'twentyten_custom_excerpt_more' );
/**
* Remove inline styles printed when the gallery shortcode is used.
*
* Galleries are styled by the theme in Twenty Ten's style.css. This is just
* a simple filter call that tells WordPress to not use the default styles.
*
* @since Twenty Ten 1.2
*/
add_filter( 'use_default_gallery_style', '__return_false' );
/**
* Deprecated way to remove inline styles printed when the gallery shortcode is used.
*
* This function is no longer needed or used. Use the use_default_gallery_style
* filter instead, as seen above.
*
* @since Twenty Ten 1.0
* @deprecated Deprecated in Twenty Ten 1.2 for WordPress 3.1
*
* @return string The gallery style filter, with the styles themselves removed.
*/
function twentyten_remove_gallery_css( $css ) {
return preg_replace( "##s", '', $css );
}
// Backwards compatibility with WordPress 3.0.
if ( version_compare( $GLOBALS['wp_version'], '3.1', '<' ) )
add_filter( 'gallery_style', 'twentyten_remove_gallery_css' );
if ( ! function_exists( 'twentyten_comment' ) ) :
/**
* Template for comments and pingbacks.
*
* To override this walker in a child theme without modifying the comments template
* simply create your own twentyten_comment(), and that function will be used instead.
*
* Used as a callback by wp_list_comments() for displaying the comments.
*
* @since Twenty Ten 1.0
*
* @param object $comment The comment object.
* @param array $args An array of arguments. @see get_comment_reply_link()
* @param int $depth The depth of the comment.
*/
function twentyten_comment( $comment, $args, $depth ) {
$GLOBALS['comment'] = $comment;
switch ( $comment->comment_type ) :
case '' :
?>
id="li-comment-">
__( 'Primary Widget Area', 'twentyten' ),
'id' => 'primary-widget-area',
'description' => __( 'Add widgets here to appear in your sidebar.', 'twentyten' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Area 2, located below the Primary Widget Area in the sidebar. Empty by default.
register_sidebar( array(
'name' => __( 'Secondary Widget Area', 'twentyten' ),
'id' => 'secondary-widget-area',
'description' => __( 'An optional secondary widget area, displays below the primary widget area in your sidebar.', 'twentyten' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Area 3, located in the footer. Empty by default.
register_sidebar( array(
'name' => __( 'First Footer Widget Area', 'twentyten' ),
'id' => 'first-footer-widget-area',
'description' => __( 'An optional widget area for your site footer.', 'twentyten' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Area 4, located in the footer. Empty by default.
register_sidebar( array(
'name' => __( 'Second Footer Widget Area', 'twentyten' ),
'id' => 'second-footer-widget-area',
'description' => __( 'An optional widget area for your site footer.', 'twentyten' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Area 5, located in the footer. Empty by default.
register_sidebar( array(
'name' => __( 'Third Footer Widget Area', 'twentyten' ),
'id' => 'third-footer-widget-area',
'description' => __( 'An optional widget area for your site footer.', 'twentyten' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
// Area 6, located in the footer. Empty by default.
register_sidebar( array(
'name' => __( 'Fourth Footer Widget Area', 'twentyten' ),
'id' => 'fourth-footer-widget-area',
'description' => __( 'An optional widget area for your site footer.', 'twentyten' ),
'before_widget' => '',
'after_widget' => '',
'before_title' => '',
) );
}
/** Register sidebars by running twentyten_widgets_init() on the widgets_init hook. */
add_action( 'widgets_init', 'twentyten_widgets_init' );
/**
* Remove the default styles that are packaged with the Recent Comments widget.
*
* To override this in a child theme, remove the filter and optionally add your own
* function tied to the widgets_init action hook.
*
* This function uses a filter (show_recent_comments_widget_style) new in WordPress 3.1
* to remove the default style. Using Twenty Ten 1.2 in WordPress 3.0 will show the styles,
* but they won't have any effect on the widget in default Twenty Ten styling.
*
* @since Twenty Ten 1.0
*/
function twentyten_remove_recent_comments_style() {
add_filter( 'show_recent_comments_widget_style', '__return_false' );
}
add_action( 'widgets_init', 'twentyten_remove_recent_comments_style' );
if ( ! function_exists( 'twentyten_posted_on' ) ) :
/**
* Print HTML with meta information for the current post-date/time and author.
*
* @since Twenty Ten 1.0
*/
function twentyten_posted_on() {
printf( __( 'Posted on %2$s by %3$s', 'twentyten' ),
'meta-prep meta-prep-author',
sprintf( '%3$s',
get_permalink(),
esc_attr( get_the_time() ),
get_the_date()
),
sprintf( '%3$s',
get_author_posts_url( get_the_author_meta( 'ID' ) ),
esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
get_the_author()
)
);
}
endif;
if ( ! function_exists( 'twentyten_posted_in' ) ) :
/**
* Print HTML with meta information for the current post (category, tags and permalink).
*
* @since Twenty Ten 1.0
*/
function twentyten_posted_in() {
// Retrieves tag list of current post, separated by commas.
$tag_list = get_the_tag_list( '', ', ' );
if ( $tag_list && ! is_wp_error( $tag_list ) ) {
$posted_in = __( 'This entry was posted in %1$s and tagged %2$s. Bookmark the permalink.', 'twentyten' );
} elseif ( is_object_in_taxonomy( get_post_type(), 'category' ) ) {
$posted_in = __( 'This entry was posted in %1$s. Bookmark the permalink.', 'twentyten' );
} else {
$posted_in = __( 'Bookmark the permalink.', 'twentyten' );
}
// Prints the string, replacing the placeholders.
printf(
$posted_in,
get_the_category_list( ', ' ),
$tag_list,
get_permalink(),
the_title_attribute( 'echo=0' )
);
}
endif;
/**
* Retrieve the IDs for images in a gallery.
*
* @uses get_post_galleries() First, if available. Falls back to shortcode parsing,
* then as last option uses a get_posts() call.
*
* @since Twenty Ten 1.6.
*
* @return array List of image IDs from the post gallery.
*/
function twentyten_get_gallery_images() {
$images = array();
if ( function_exists( 'get_post_galleries' ) ) {
$galleries = get_post_galleries( get_the_ID(), false );
if ( isset( $galleries[0]['ids'] ) )
$images = explode( ',', $galleries[0]['ids'] );
} else {
$pattern = get_shortcode_regex();
preg_match( "/$pattern/s", get_the_content(), $match );
$atts = shortcode_parse_atts( $match[3] );
if ( isset( $atts['ids'] ) )
$images = explode( ',', $atts['ids'] );
}
if ( ! $images ) {
$images = get_posts( array(
'fields' => 'ids',
'numberposts' => 999,
'order' => 'ASC',
'orderby' => 'menu_order',
'post_mime_type' => 'image',
'post_parent' => get_the_ID(),
'post_type' => 'attachment',
) );
}
return $images;
}
/**
* Modifies tag cloud widget arguments to display all tags in the same font size
* and use list format for better accessibility.
*
* @since Twenty Ten 2.4
*
* @param array $args Arguments for tag cloud widget.
* @return array The filtered arguments for tag cloud widget.
*/
function twentyten_widget_tag_cloud_args( $args ) {
$args['largest'] = 22;
$args['smallest'] = 8;
$args['unit'] = 'pt';
$args['format'] = 'list';
return $args;
}
add_filter( 'widget_tag_cloud_args', 'twentyten_widget_tag_cloud_args' );
/*
*
*
*
*
*
###########################################
*
-------------------------------------------
-------- Custom Changes -------------------
___________________________________________
*
###########################################
*
*
*
*
*
*/
add_action('init', 'current_language');
function current_language(){
$curLang = substr(get_bloginfo( 'language' ), 0, 2);
return $curLang;
}
//add_action('init', 'switch_word_by_lang_multiple');
function switch_word_by_lang_multiple($array)
{
$lang = current_language_code();
return $array[$lang];
}
//http://codex.wordpress.org/Function_Reference/register_post_type
// add_action('init', 'post_type_events');
// function post_type_events()
// {
// $labels = array(
// 'name' => _x('News & Events', 'post type general name'),
// 'singular_name' => _x('News & Events', 'post type singular name'),
// 'add_new' => _x('Add new post', 'event'),
// 'add_new_item' => __('Add new post')
// );
// $args = array(
// 'labels' => $labels,
// // 'taxonomies' => array('category'),
// 'public' => true,
// 'publicly_queryable' => true,
// 'show_ui' => true,
// 'query_var' => true,
// 'rewrite' => true,
// 'capability_type' => 'post',
// 'exclude_from_search' => false,
// 'hierarchical' => true,
// 'menu_position' => null,
// 'show_in_nav_menus' => true,
// 'has_archive' => true,
// 'supports' => array('title', 'editor', 'thumbnail', 'excerpt') // 'title', 'editor' (content), 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes', 'post-formats'
// );
// register_post_type('event',$args);
// }
//http://net.tutsplus.com/tutorials/wordpress/introducing-wordpress-3-custom-taxonomies/
//http://codex.wordpress.org/Function_Reference/register_taxonomy
// add_action( 'init', 'build_event_taxonomies', 0 );
// function build_event_taxonomies() {
// register_taxonomy(
// 'event_category',
// 'event',
// array(
// 'hierarchical' => true,
// 'label' => 'Event Categories',
// 'query_var' => true,
// 'rewrite' => true
// )
// );
// }
//http://codex.wordpress.org/Function_Reference/register_post_type
// add_action('init', 'post_type_slideshow');
// function post_type_slideshow()
// {
// $labels = array(
// 'name' => _x('Slideshow', 'post type general name'),
// 'singular_name' => _x('Slideshow', 'post type singular name'),
// 'add_new' => _x('Add a new slide', 'slide'),
// 'add_new_item' => __('Add a new slide')
// );
// $args = array(
// 'labels' => $labels,
// //'taxonomies' => array('category'),
// 'public' => true,
// 'publicly_queryable' => true,
// 'show_ui' => true,
// 'query_var' => true,
// 'rewrite' => true,
// 'capability_type' => 'post',
// 'exclude_from_search' => true,
// 'hierarchical' => true,
// 'menu_position' => null,
// 'has_archive' => true,
// 'supports' => array('title', 'editor', 'thumbnail', 'excerpt') // 'title', 'editor' (content), 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes', 'post-formats'
// );
// register_post_type('slide',$args);
// }
//http://codex.wordpress.org/Function_Reference/register_post_type
// add_action('init', 'post_type_members');
// function post_type_members()
// {
// $labels = array(
// 'name' => _x('Members', 'post type general name'),
// 'singular_name' => _x('Members', 'post type singular name'),
// 'add_new' => _x('Add a new member', 'member'),
// 'add_new_item' => __('Add a new member')
// );
// $args = array(
// 'labels' => $labels,
// //'taxonomies' => array('category'),
// 'public' => true,
// 'publicly_queryable' => true,
// 'show_ui' => true,
// 'query_var' => true,
// 'rewrite' => true,
// 'capability_type' => 'post',
// 'exclude_from_search' => true,
// 'hierarchical' => true,
// 'menu_position' => null,
// 'show_in_nav_menus' => true,
// 'show_in_menu' => true,
// 'has_archive' => true,
// 'supports' => array('title', 'editor', 'thumbnail', 'excerpt') // 'title', 'editor' (content), 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes', 'post-formats'
// );
// register_post_type('member',$args);
// }
//http://codex.wordpress.org/Function_Reference/register_post_type
// add_action('init', 'post_type_galeri');
// function post_type_galeri()
// {
// $labels = array(
// 'name' => _x('Galeri', 'post type general name'),
// 'singular_name' => _x('Galeri', 'post type singular name'),
// 'add_new' => _x('Add new galeri', 'galeri'),
// 'add_new_item' => __('Add new galeri')
// );
// $args = array(
// 'labels' => $labels,
// //'taxonomies' => array('category'),
// 'public' => true,
// 'publicly_queryable' => true,
// 'show_ui' => true,
// 'query_var' => true,
// 'rewrite' => true,
// 'capability_type' => 'post',
// 'exclude_from_search' => true,
// 'hierarchical' => true,
// 'menu_position' => null,
// 'show_in_nav_menus' => true,
// 'has_archive' => true,
// 'supports' => array('title', 'editor', 'thumbnail', 'excerpt') // 'title', 'editor' (content), 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes', 'post-formats'
// );
// register_post_type('galeri',$args);
// }
//http://net.tutsplus.com/tutorials/wordpress/introducing-wordpress-3-custom-taxonomies/
//http://codex.wordpress.org/Function_Reference/register_taxonomy
// add_action( 'init', 'build_galeri_taxonomies', 0 );
// function build_galeri_taxonomies() {
// register_taxonomy(
// 'galeri_category',
// 'galeri',
// array(
// 'hierarchical' => true,
// 'label' => 'Gallery Categories',
// 'query_var' => true,
// 'rewrite' => true
// )
// );
// }
//http://codex.wordpress.org/Function_Reference/register_post_type
// add_action('init', 'post_type_header_image');
// function post_type_header_image()
// {
// $labels = array(
// 'name' => _x('Header Images', 'post type general name'),
// 'singular_name' => _x('Header Images', 'post type singular name'),
// 'add_new' => _x('Add new image', 'headerimage'),
// 'add_new_item' => __('Add new image')
// );
// $args = array(
// 'labels' => $labels,
// //'taxonomies' => array('category'),
// 'public' => true,
// 'publicly_queryable' => true,
// 'show_ui' => true,
// 'query_var' => true,
// 'rewrite' => true,
// 'capability_type' => 'post',
// 'exclude_from_search' => true,
// 'hierarchical' => true,
// 'menu_position' => null,
// 'show_in_nav_menus' => true,
// 'has_archive' => false,
// 'supports' => array('title', 'thumbnail') // 'title', 'editor' (content), 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes', 'post-formats'
// );
// register_post_type('headerimage',$args);
// }
function my_search_form_header($lang='sq', $id = 'search-form', $class = '', $input_class = '') {
if($lang == 'sq'){
$home = '';
$kerko = 'Kërko…';
$title = 'Plotësoni kërkimin tuaj...';
} else {
$home = 'en/';
$kerko = 'Search…';
$title = 'Enter your keyword...';
}
$form = '';
return $form;
}
add_filter( 'get_search_form', 'my_search_form_header' );
function my_search_form($lang='sq', $id = 'search-form', $class = '', $input_class = '') {
if($lang == 'sq'){
$home = '';
$kerko = 'Kërko…';
$title = 'Plotësoni kërkimin tuaj...';
} else {
$home = 'en/';
$kerko = 'Search…';
$title = 'Enter your keyword...';
}
$form = '';
return $form;
}
add_filter( 'get_search_form', 'my_search_form' );
function search_form_404($lang='sq', $id = '', $class = 'form', $input_class = '') {
if($lang == 'sq'){
$home = '';
$kerko = 'Kërko...';
$title = 'Plotësoni kërkimin tuaj...';
} else {
$home = 'en/';
$kerko = 'Search...';
$title = 'Enter your keyword...';
}
$kerko = 'Kërko...';
$form = '';
return $form;
}
add_filter( 'get_search_form', 'search_form_404' );
//https://wordpress.stackexchange.com/questions/179585/remove-category-tag-author-from-the-archive-title
add_filter( 'get_the_archive_title', function ($title) {
if ( is_category() ) {
$title = single_cat_title( '', false );
} elseif ( is_tag() ) {
$title = single_tag_title( '', false );
} elseif ( is_author() ) {
$title = '' . get_the_author() . '' ;
}
return $title;
});
add_filter( 'post_type_archive_title', function ($title)
{
if($title == 'Services'){
$new_title = switch_word_by_lang_multiple(array(
'sq' => 'Shërbime',
'en' => 'Service',
'it' => 'Servizi'
));
} else {
$new_title = $title;
}
return $new_title;
});
function post_type_archive_description($title){
if($title == 'Services'){
$new_title = switch_word_by_lang_multiple(array(
'sq' => 'Pellentesque molestie quis ligula eget fermentum',
'en' => 'Cras vulputate ante nec venenatis aliquam',
'it' => 'Nulla at ultricies justo'
));
} else {
$new_title = "";
}
return $new_title;
}
function return_date($date, $lang){
$date = explode('-', $date);
$months = array(
'en' => array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"),
'sq' => array("Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nentor", "Dhjetor"),
);
return array($date[2], $months[$lang][($date[1] - 1)], $date[0]);
}
function oEmbedVideos($iframe)
{
preg_match('/src="(.+?)"/', $iframe, $matches);
$src = $matches[1];
$params = array(
'controls' => 0,
'hd' => 1,
'autohide' => 1
);
$new_src = add_query_arg($params, $src);
$iframe = str_replace($src, $new_src, $iframe);
$attributes = 'frameborder="0"';
$iframe = str_replace('>', ' ' . $attributes . '>', $iframe);
return $iframe;
}
function tel_numbers($number){
$tel = str_replace("+","00", $number);
$tel = preg_replace('/\s+/', '', $tel);
return $tel;
}
function get_author_fullname(){
$fname = get_the_author_meta('first_name');
$lname = get_the_author_meta('last_name');
$full_name = '';
if(!empty($fname) || !empty($lname)){
if( empty($fname)){
$full_name = $lname;
} elseif( empty( $lname )){
$full_name = $fname;
} else {
$full_name = "{$fname} {$lname}";
}
} else {
$full_name = get_the_author();
}
return $full_name;
}
//remove version number from head & feeds
function disable_version() { return ''; }
add_filter('the_generator','disable_version');
remove_action('wp_head', 'wp_generator');
//https://css-tricks.com/snippets/wordpress/allow-svg-through-wordpress-media-uploader/
function cc_mime_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');
global $current_user;
wp_get_current_user();
if($current_user->user_login != 'dev')
{
//heq lajmerimet per update
function hideupdatenotice() {remove_action( 'admin_notices', 'update_nag', 3 );}
add_action('admin_menu','hideupdatenotice');
//Remove an admin submenu
function remove_submenu_update () {if ( function_exists( 'remove_menu_page' ) ) {remove_submenu_page( 'index.php','update-core.php' );}}
add_action( 'admin_menu', 'remove_submenu_update' );
//heq admin footer text
function change_footer_admin () {return ' ';}
add_filter('admin_footer_text', 'change_footer_admin', 9999);
//heq admin version number
function change_footer_version() {return ' ';}
add_filter( 'update_footer', 'change_footer_version', 9999);
//https://codex.wordpress.org/Function_Reference/remove_menu_page
function remove_menus()
{
// remove_menu_page( 'edit.php' ); //Posts
remove_menu_page( 'edit-comments.php' ); //Comments
remove_menu_page( 'edit.php?post_type=acf-field-group' ); //ACF
}
add_action( 'admin_menu', 'remove_menus' );
}
if($current_user->user_login == 'msh')
{
function remove_menus_page()
{
remove_menu_page( 'edit.php?post_type=page' ); //Pages
remove_menu_page( 'tools.php' ); //Tools
remove_menu_page( 'admin.php?page=acf-options' ); //ACF Options/ Spunon
}
add_action( 'admin_menu', 'remove_menus_page' );
}