-
Notifications
You must be signed in to change notification settings - Fork 0
/
functions.php
155 lines (140 loc) · 5.39 KB
/
functions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<?php
function register_menus() {
register_nav_menus(
array(
'header-menu' => __( 'Hoofdmenu' ),
'project-menu' => __( 'Projectmenu' ),
'extra-menu' => __( 'Buurtmenu' ),
'info-menu' => __( 'Info' ),
'contact-menu' => __( 'Contactmenu' )
)
);
}
add_action( 'init', 'register_menus');
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'Informatieblok',
'id' => 'info',
'description' => 'Verschijnt als blok onderaan iedere pagina',
'before_widget' => '<div></div><li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="widgettitle">',
'after_title' => '</h2>',
)
);
}
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'Projectoverzicht',
'id' => 'projects',
'description' => 'Overzicht op de startpagina',
'before_widget' => '<div></div><li id="%1$s" class="widget %2$s">',
'after_widget' => '</li>',
'before_title' => '<h2 class="projecttitle">',
'after_title' => '</h2>',
)
);
}
function register_post_thumbnails() {
add_theme_support( 'post-thumbnails' );
}
add_action( 'after_setup_theme', 'register_post_thumbnails' );
class Panels_With_Description extends Walker_Nav_Menu {
function start_el(&$output, $item, $depth=0, $args=array(), $id = 0) {
$object = $item->object;
$type = $item->type;
$title = $item->title;
$description = $item->description;
$permalink = $item->url;
$output .= '<li class="wp3-project">';
$attributes = ! empty( $item->attr_title ) ? ' title="' . esc_attr( $item->title ) .'"' : '';
$attributes .= ! empty( $item->target ) ? ' target="' . esc_attr( $item->target ) .'"' : '';
$attributes .= ! empty( $item->xfn ) ? ' rel="' . esc_attr( $item->xfn ) .'"' : '';
$attributes .= ! empty( $item->url ) ? ' href="' . esc_attr( $item->url ) .'"' : '';
$item_output = $args->before;
$item_output .= '<a class="wp3-project ' . implode(' ', $item->classes) .'" '. $attributes .'>';
$item_output .= '<h2>'. $item->attr_title .'</h2>';
$item_output .= '<h3>'. $item->title .'</h3>';
$item_output .= '<p>' . $item->description . '</p>';
$item_output .= '</a>';
$item_output .= $args->after;
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}
/**
* Add meta description (https://gretathemes.com/seo-add-meta-tags-without-plugins/)
*/
function meta_description() {
if ( is_home() ) {
echo '<meta name="description" content="' . get_bloginfo( "description" ) . '" />' . "\n";
$cats = get_categories( );
$keys = array();
foreach ($cats as $c) {
array_push( $keys, $c->name );
}
echo '<meta name="keywords" content="' . implode( ',', $keys ) . '" />' . "\n";
}
if ( is_page() ) {
$excerpt = get_the_excerpt();
$excerpt = substr($excerpt, 0, 160);
$excerpt = substr($excerpt, 0, strrpos($excerpt, ' '));
if ( empty( $excerpt ) ) {
echo '<meta name="description" content="' . get_bloginfo( "description" ) . '" />' . "\n";
} else {
$excerpt = wp_strip_all_tags( $excerpt, true );
$excerpt = strip_shortcodes( $excerpt );
$excerpt = str_replace( array("\n", "\r", "\t"), ' ', $excerpt );
$excerpt = mb_substr( $excerpt, 0, 300, 'utf8' );
echo '<meta name="description" content="' . $excerpt . '" />' . "\n";
}
}
if ( is_category() ) {
$cat = wp_strip_all_tags( category_description() );
echo '<meta name="description" content="' . $cat . '" />' . "\n";
}
}
add_action( 'wp_head', 'meta_description');
/**
* Disable the emoji's (https://kinsta.com/knowledgebase/disable-emojis-wordpress/#disable-emojis-code)
*/
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );
/**
* Filter function used to remove the tinymce emoji plugin.
*
* @param array $plugins
* @return array Difference betwen the two arrays
*/
function disable_emojis_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
/**
* Remove emoji CDN hostname from DNS prefetching hints.
*
* @param array $urls URLs to print for resource hints.
* @param string $relation_type The relation type the URLs are printed for.
* @return array Difference betwen the two arrays.
*/
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
if ( 'dns-prefetch' == $relation_type ) {
/** This filter is documented in wp-includes/formatting.php */
$emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );
$urls = array_diff( $urls, array( $emoji_svg_url ) );
}
return $urls;
}
?>