I have disabled several plugins to find out if there is interference but without result.
Any idea?
When the same site is pushed to a Namecheap server, it works fine. This problem is only a Windows laptop. Other Media Library Folders admin options work fine, it is only with the “Folders & Files” option.
This is with Media Library Folders version 8.2.5. I vaguely remember this being a problem that is solved by downgrading to an earlier version. Is that true, and how do I do it?
]]>[31-Aug-2024 00:51:38 UTC] PHP Warning: Undefined array key "C:/laragon_new/www/XXX/wp-content/themes/XXX/parts/header.html" in C:\laragon_new\www\XXX\wp-content\plugins\query-monitor\output\html\theme.php on line 163
[31-Aug-2024 00:51:38 UTC] PHP Warning: Undefined array key "C:/laragon_new/www/XXX/wp-content/themes/XXX/parts/footer.html" in C:\laragon_new\www\XXX\wp-content\plugins\query-monitor\output\html\theme.php on line 163
For info, i use PHP 8.3 at the moment but i don’t think (not quite sure) that’s it’s related.
What i found out is that QM seems to be collecting data differently about “paths” on Windows (which is causing the PHP Warnings.
When i log $parts and $data->count_template_parts, i can clearly see that one is using forward slashes but the other one is using a mix, the logs:
[31-Aug-2024 00:59:27 UTC] DEBUG: $parts Array
(
[C:/laragon_new/www/XXX/wp-content/themes/XXX/parts/header.html] => parts/header.html
[C:/laragon_new/www/XXX/wp-content/themes/XXX/parts/footer.html] => parts/footer.html
)
[31-Aug-2024 00:59:27 UTC] DEBUG: $data->count_template_parts Array
(
[C:\laragon_new\www\XXX/wp-content/themes/XXX/parts/header.html] => 1
[C:\laragon_new\www\XXX/wp-content/themes/XXX/parts/footer.html] => 1
)
If you have an idea on how to fix this, that would be great
Have a good day,
Damien
I have this PHP Warning: Undefined array key “standard” in /public_html/wp-content/plugins/booster-plus-for-woocommerce/includes/shortcodes/class-wcj-orders-shortcodes.php on line 254\n
That line contains: $atts[‘standard’] = wcj_sanitize_input_attribute_values( $atts[‘standard’] );
The PHP warning, Undefined array key “standard”, occurs because the array key “standard” is not defined in the $atts array when it is being accessed. This can happen if the shortcode that the code is handling doesn’t include the standard attribute.
I have Booster Plus for WooCommerce version 7.2.2
How to solve this?
]]>There is a bug with Yoast, stating undefined property. This may be due to PHP 8 compared to 7.
This is a deprecation issue. Are the Yoast devs aware of the issue? The GitHub issues appear to be closed on it.
Other users who mention the same or similar issue:
https://www.ads-software.com/support/topic/warning-undefined-property-stdclassrenewalurl/
https://www.ads-software.com/support/topic/undefined-property-stdclassrenewalurl-class-addon-manager-php-on-line-787/
https://github.com/Yoast/wordpress-seo/issues/3491
https://www.ads-software.com/support/topic/php-8-1-deprecation-warning/
https://www.ads-software.com/support/topic/php8-causing-errors/
]]>Because I’ve a second select field that needs the value of the first select to make an AJAX request, I need to disable this because I do all the validation in the wpcf7_validate_select*
filter.
I’ve tried to disable the new action introduced in 6.1.0 version, but I can’t. I’ve checked the action name and is registered with this name.
The snippets that I’ve tried
remove_action('wpcf7_init', 'reset_select_enum_rules', 100);
remove_action('wpcf7_init', 'Cf7_2_Post_Public–>reset_select_enum_rules', 100);
There’s a way to disable the Schema-Woven Validation in your plugin?
Thanks!
]]>wp-content/themes/montezuma/includes/parse_php.php
<?php
function bfa_parse_php_callback( $matches ) {
$function_name = $matches[1];
$parameter_string = $matches[2];
$whitelist = bfa_get_whitelist();
/*
* Check for "echo " in 'function_name' part and remove it
* echo function_name( ... )
*/
$echo = FALSE;
if( strpos( $function_name, 'echo ' ) === 0 ) {
$echo = TRUE;
// Remove 'echo ' (first 5 letters) from the beginning of the string
$function_name = str_replace( substr( $function_name, 0, 5 ), '', $function_name );
}
// Allow only whitelisted functions:
if( ! in_array( $function_name, array_keys( $whitelist ) ) )
return;
// $need_loop = array( 'bfa_comments_popup_link', 'comments_popup_link', 'the_content' );
$need_loop = array( 'the_author',
'the_author_meta',
'the_author_posts_link',
'the_content',
'the_post_thumbnail',
'the_date',
'the_excerpt'
);
// functions that needs the loop
// the following line changed by Patch 113-02
// if (have_posts())
if( !in_the_loop() && in_array( $function_name, $need_loop ) ) {
/*
global $query_string;
$posts = query_posts($query_string);
*/
if ((is_single() OR is_page()) AND have_posts())
the_post();
}
// No paramater -> parameter type doesn't matter
if( $parameter_string == '' ) {
ob_start();
if( $echo == TRUE )
echo $function_name();
else
$function_name();
$result = ob_get_contents();
ob_end_clean();
return $result;
}
/*
* Array style parameters:
* function_name(array('this'=>'that','this'=>3,'this'=>true));
*/
elseif( $whitelist[$function_name]['type'] == 'array' ) {
$param_array = array();
$parameter_string = str_replace( "\n", " ", $parameter_string );
$parameter_string = str_replace( " ", " ", $parameter_string ); // remove double spaces
$parameter_array = str_getcsv( $parameter_string, ',', '\'', '\\' );
foreach( $parameter_array as $parameter ) {
list( $key, $value ) = explode( '=>', $parameter );
$param_array[ trim( $key, '\' ' ) ] = trim( $value, '\' ' );
}
ob_start();
if( $echo === TRUE )
echo $function_name( $param_array );
else
$function_name( $param_array );
$result = ob_get_contents();
ob_end_clean();
return $result;
}
/*
* URL-query style parameters:
* function_name( 'this=that&this=that&this=that' );
*/
elseif( $whitelist[$function_name]['type'] == 'queryarray' ) {
ob_start();
if( $echo === TRUE )
echo $function_name( $parameter_string );
else
$function_name( $parameter_string );
$result = ob_get_contents();
ob_end_clean();
return $result;
}
/*
* PHP function-style parameters:
* function_name( 'param', 'param', '', TRUE, 1, 'param' );
*/
elseif( $whitelist[$function_name]['type'] == 'function' ) {
$parameter_array = str_getcsv( $parameter_string, ',', '\'', '\\' );
$args = array();
foreach( $parameter_array as $arg ) {
$thisarg = $arg;
$args[] = trim( $thisarg, '\'' );
}
ob_start();
if( $echo === TRUE ) {
echo call_user_func_array( $function_name, $args );
} else {
call_user_func_array( $function_name, $args );
}
$result = ob_get_contents();
ob_end_clean();
return $result;
}
/*
* Single PHP style parameter, or none at all:
* function_name();
* function_name('param');
*/
elseif( $whitelist[$function_name]['type'] == 'single' || $whitelist[$function_name]['type'] == 'function') {
ob_start();
if( $echo === TRUE )
echo call_user_func( $function_name, trim( $parameter_string, '\'' ) );
else
call_user_func( $function_name, trim( $parameter_string, '\'' ) );
$result = ob_get_contents();
ob_end_clean();
return $result;
}
}
function bfa_parse_php_string( $matches ) {
$php_string = $matches[1];
$php_string = str_replace( array( "\r", "\n", "\t" ), "", $php_string );
// Since 1.2.0:
$php_string = str_replace( ", ", ",", $php_string );
// Replace translation texts that are paramaters first
// __('afsfsfs "nnhjj" peter\'s ', 'montezuma')
// __("afsfsfs \"nnhjj\" peter's ", 'montezuma')
$php_string = preg_replace_callback(
'/__\(\s*\'|"[\'|"]\s*,\s*\'montezuma\'\s*\)/',
function ($matches) {
return translate(stripslashes($matches[1] ?? ''), "montezuma");
// Use null coalescing operator to provide a default value ('') if $matches[1] is undefined
},
$php_string
);
// $matches[1] is the (.*) from above. We have a php code string without the
// opening and closing PHP tags, and no spaces left/right
// match 'echo function_name( parameters )' or 'function_name( parameters )'
// \s* = 0 or more spaces
// (echo [a-z_]+[a-z\d_]+|[a-z_]+[a-z\d_]*) = min 1 character, 'echo func_name' or 'func_name'
// 'func_name' can start with a-z or _, second character optional, can be a-z, _ or \d = number
// \s* = 0 or more spaces
// \( = opening bracket ( - literally
// \s* = 0 or more spaces
// (?:array\s*\()? = ?: = don't capture. ()? = optional
// content: an optional 'array' followed by 0 or more spaces and an opening bracket (
$result = preg_replace_callback(
'/\s*(echo [a-zA-Z_]+[a-zA-Z\d_]+|[a-zA-Z_]+[a-zA-Z\d_]*)\s*\(\s*(?:array\s*\()?\s*(.*?)\s*(?:\))?\s*\)\s*/',
'bfa_parse_php_callback',
$php_string
);
return $result;
}
function bfa_parse_php( $text ) {
$whitelist = bfa_get_whitelist();
$text = preg_replace_callback(
'/\<\?php \s*(.*?)\s*(?:;)?\s*\?\>/s', // s = multiline \s* = 0 or more spaces
'bfa_parse_php_string',
$text
);
return $text;
}
// parse potentially eval'able code for illegal function calls
function bd_parse($str) {
// allowed functions:
$allowedCalls = explode(
',',
'explode,implode,date,time,round,trunc,rand,ceil,floor,srand,'.
'strtolower,strtoupper,substr,stristr,strpos,print,print_r'
);
// check if there are any illegal calls
$parseErrors = array();
$tokens = token_get_all($str);
$vcall = '';
foreach($tokens as $token) {
if(is_array($token)) {
$id = $token[0];
switch ($id) {
case(T_VARIABLE): { $vcall .= 'v'; break; }
case(T_CONSTANT_ENCAPSED_STRING): { $vcall .= 'e'; break; }
case(T_STRING): { $vcall .= 's'; }
case(T_REQUIRE_ONCE): case(T_REQUIRE): case(T_NEW): case(T_RETURN):
case(T_BREAK): case(T_CATCH): case(T_CLONE): case(T_EXIT):
case(T_PRINT): case(T_GLOBAL): case(T_ECHO): case(T_INCLUDE_ONCE):
case(T_INCLUDE): case(T_EVAL): case(T_FUNCTION): case(T_GOTO):
case(T_USE): case(T_DIR): {
if (array_search($token[1], $allowedCalls) === false)
$parseErrors[] = 'illegal call: '.$token[1];
}
}
}
else $vcall .= $token;
}
// check for dynamic functions
if(stristr($vcall, 'v(')!='') $parseErrors[] = array('illegal dynamic function call');
return $parseErrors;
}
/*
Check for safe code by running: if(count(bd_parse($user_code))==0)
*/
wp-content/themes/montezuma/includes/thumb.php
<?php
if ( ! function_exists( 'bfa_delete_thumb_transient' ) ) :
function bfa_delete_thumb_transient( $post_id ) {
delete_transient( 'bfa_thumb_transient' );
}
endif;
add_action( 'save_post', 'bfa_delete_thumb_transient' );
if ( ! function_exists( 'bfa_thumb' ) ) :
function bfa_thumb( $width, $height, $crop = false, $before = '', $after = '', $link = 'permalink' ) {
global $post, $upload_dir, $bfa_thumb_transient;
if ( ! is_writable( $upload_dir['basedir'] ) ) {
echo "WP Upload Directory not writable! Check file and directory permissions";
return;
}
// Unique thumb per size & post
$id = get_the_id() . '_' . $width . '_' . $height . '_' . ( $crop === FALSE ? '0' : '1' );
if( array_key_exists( $id, $bfa_thumb_transient ) AND !str_contains( (string) $bfa_thumb_transient[$id], 'src=""' ) )
$this_thumb = $bfa_thumb_transient[$id] ?? false;
else
$this_thumb = FALSE;
if ( $this_thumb === FALSE ) {
$this_thumb = '';
$hasthumb = FALSE;
$hassrc = FALSE;
$has_thumbnail = FALSE;
if( '' != ( $thumb = get_post_thumbnail_id() ) )
$hasthumb = TRUE;
elseif ( FALSE !== ( $thumb = bfa_get_first_attachment_id() ) )
$hasthumb = TRUE;
elseif ( FALSE !== ( $thumb = bfa_get_first_unattached_gallery_img_id() ) )
$hasthumb = TRUE;
// if local image not added with WP uploader but added as manual HTML link
elseif( FALSE !== ( $thumb = bfa_get_first_img_src() ) )
$hassrc = TRUE;
if( $hasthumb === TRUE ) {
$thumbimage = bfa_vt_resize( $thumb,'' , $width, $height, $crop );
$has_thumbnail = TRUE;
} elseif( $hassrc === TRUE ) {
$thumbimage = bfa_vt_resize( '', $thumb , $width, $height, $crop );
$has_thumbnail = TRUE;
}
if( $has_thumbnail === TRUE ) {
$this_thumb .= '<img src="' . $thumbimage['url'] . '" width="' . $thumbimage['width'] . '" height="' . $thumbimage['height'] . '" alt="' . $post->post_title . '"/>';
}
#$bfa_thumb_transient = get_transient( 'bfa_thumb_transient' );
$bfa_thumb_transient[$id] = $this_thumb;
set_transient( 'bfa_thumb_transient', $bfa_thumb_transient, 60*60*1 );
}
if( trim( (string) $this_thumb ) != '' AND $this_thumb != FALSE ) {
if( $link == 'permalink' )
$this_thumb = '<a href="'.get_permalink( $id ).'">'.$this_thumb.'</a>';
echo $before . $this_thumb . $after;
}
}
endif;
if ( ! function_exists( 'bfa_get_first_attachment_id' ) ) :
function bfa_get_first_attachment_id() {
global $post;
$args = array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
if( $attachments )
return $attachments[0]->ID;
return FALSE;
}
endif;
// For galleries with images not attached to current post: [gallery ids="xxx,xxx,xxx,xxx,xxx,xxx,xxx"]
if ( ! function_exists( 'bfa_get_first_unattached_gallery_img_id' ) ) :
function bfa_get_first_unattached_gallery_img_id( $args = array() ) {
global $post;
preg_match_all( '|\[gallery \s*ids\s*=\s*"\s*(.*?)\s*,|i', (string) $post->post_content, $matches );
foreach( $matches[1] as $match ) {
if ( isset( $match ) )
return $match;
}
return false;
}
endif;
if ( ! function_exists( 'bfa_get_first_img_src' ) ) :
function bfa_get_first_img_src( $args = array() ) {
global $post, $site_url;
preg_match_all( '|<img.*?src=\'"[\'"].*?>|i', (string) $post->post_content, $matches );
foreach ( $matches[1] as $match ) {
if ( isset( $match ) && str_contains( (string) $match, (string) $site_url ) ) {
return $match;
}
}
return false;
}
endif;
if ( ! function_exists( 'bfa_vt_resize' ) ) :
function bfa_vt_resize( $attach_id = null, $img_url = null, $width, $height, $crop = false ) {
if ( $attach_id ) {
$image_src = wp_get_attachment_image_src( $attach_id, 'full' );
$file_path = get_attached_file( $attach_id );
} elseif ( $img_url ) {
$file_path = parse_url( (string) $img_url );
$file_path = str_replace( '//', '/', $_SERVER['DOCUMENT_ROOT'] . $file_path['path'] );
$orig_size = getimagesize( $file_path );
$image_src[0] = $img_url;
$image_src[1] = $orig_size[0];
$image_src[2] = $orig_size[1];
}
global $file_path, $image_src;
$file_info = pathinfo((string) $file_path);
$extension = isset($file_info['extension']) ? '.' . $file_info['extension'] : '';
$no_ext_path = isset($file_info['dirname'], $file_info['filename']) ? $file_info['dirname'] . '/' . $file_info['filename'] : '';
$cropped_img_path = $no_ext_path . '-' . $width . 'x' . $height . '-' . ( $crop === false ? '0' : '1' ) . $extension;
if (isset($image_src[1], $image_src[2]) && ($image_src[1] > $width || $image_src[2] > $height)) {
if (file_exists($cropped_img_path)) {
$cropped_img_url = str_replace(basename((string) $image_src[0]), basename($cropped_img_path), (string) $image_src[0]);
$vt_image = [
'url' => $cropped_img_url,
'width' => $width,
'height' => $height,
//'final_image' => $final_image,
'image_url' => $img_url
];
return $vt_image;
}
// $crop = false
if ( $crop === false ) {
$proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height );
$resized_img_path = $no_ext_path . '-' . $proportional_size[0] . 'x' . $proportional_size[1] . '-' . ( $crop === FALSE ? '0' : '1' ) . $extension;
if ( file_exists( $resized_img_path ) ) { // checking if the file already exists
$resized_img_url = str_replace( basename( (string) $image_src[0] ), basename( $resized_img_path ), (string) $image_src[0] );
$vt_image = array (
'url' => $resized_img_url,
'width' => $proportional_size[0],
'height' => $proportional_size[1],
#'final_image' => $final_image,
'image_url' => $img_url
);
return $vt_image;
}
}
// no cache files - let's finally resize it
$image = wp_get_image_editor( $file_path ); // wp_get_image_editor since WP 3.5
if ( ! is_wp_error( $image ) ) {
$image->resize( $width, $height, $crop );
$image->set_quality( 30 );
$final_image = $image->save( $cropped_img_path );
$img_url = str_replace( basename( (string) $image_src[0] ), basename( (string) $final_image['path'] ), (string) $image_src[0] );
/* Sample output: final_image=
Array (
[path] => C:\UniServer_5.3.10\www\wordpress351/wp-content/uploads/2012/11/AmazingFlash_size1.png
[file] => AmazingFlash_size1.png
[width] => 440
[height] => 260
[mime-type] => image/png )
*/
// resized output
$vt_image = array (
'url' => $img_url,
'width' => $final_image['width'],
'height' => $final_image['height'],
'final_image' => $final_image,
'image_url' => $img_url
);
return $vt_image;
}
}
// default output - without resizing
$vt_image = array(
'url' => $image_src[0] ?? '', // Use null coalescing operator to handle undefined key
'width' => $image_src[1] ?? 0, // Provide a default value (e.g., 0) for width
'height' => $image_src[2] ?? 0, // Provide a default value (e.g., 0) for height
'image_url' => $img_url ?? '', // Use null coalescing operator for image URL
);
return $vt_image;
}
endif;
wp-content/themes/montezuma/includes/menus.php
<?php
function bfa_cat_menu($args){
$menu = '';
$args['echo'] = false;
$args['title_li'] = '';
if( $args['container'] ) {
$menu = '<'. $args['container'];
if( $args['container_id'] ) {
$menu .= ' id="' . $args['container_id'] . '"';
}
if( $args['container_class'] ) {
$menu .= ' class="' . $args['container_class'] . '"';
}
$menu .= ">\n";
}
$menu .= '<ul id="' . $args['menu_id'] . '" class="' . $args['menu_class'] . '">';
$menu .= str_replace( "<ul class='children'>", '<ul class="sub-menu">', wp_list_categories( $args ) );
$menu .= '</ul>';
if( $args['container'] ) {
$menu .= '</' . $args['container'] . ">\n";
}
echo $menu;
}
function bfa_page_menu($args){
$menu = '';
$args['echo'] = false;
$args['title_li'] = '';
// If the front page is a page, add it to the exclude list
if( get_option( 'show_on_front' ) == 'page' ) {
$args['exclude'] = get_option( 'page_on_front' );
}
if( $args['container'] ) {
$menu = '<'. $args['container'];
if( $args['container_id'] ) {
$menu .= ' id="' . $args['container_id'] . '"';
}
if( $args['container_class'] ) {
$menu .= ' class="' . $args['container_class'] . '"';
}
$menu .= ">\n";
}
$menu .= '<ul id="' . $args['menu_id'] . '" class="' . $args['menu_class'] . '">';
$menu .= str_replace( "<ul class='children'>", '<ul class="sub-menu">', wp_list_pages( $args ) );
$menu .= '</ul>';
if( $args['container'] ) {
$menu .= '</' . $args['container'] . ">\n";
}
echo $menu;
}
function bfa_simplify_wp_list_categories($output) {
$output = preg_replace_callback(
'/class="cat-item cat-item-(\d+)( current-cat)?(-parent)?"/',
function ($matches) {
if (isset($matches[2]) && isset($matches[3])) {
$extra = " parent";
} elseif (isset($matches[2])) {
$extra = " active";
} else {
$extra = "";
}
$cat = get_category($matches[1]);
return "class=\"cat-" . $cat->slug . $extra . "\"";
},
$output
);
return $output;
}
add_filter('wp_list_categories', 'bfa_simplify_wp_list_categories');
add_filter('the_category', 'bfa_simplify_wp_list_categories');
function bfa_simplify_wp_nav_menu( $classes, $item ) {
$item_type = 'item';
$new_classes = array();
foreach( $classes as $class ) {
if( $class == 'menu-item-object-category' ) {
$item_type = 'cat';
} elseif( $class == 'menu-item-object-page' ) {
$item_type = 'page';
} elseif( $class == 'current-menu-item' ) {
$new_classes[] = 'active';
} elseif( $class == 'current-menu-parent' ) {
$new_classes[] = 'parent';
} elseif( $class == 'current-menu-ancestor' ) {
$new_classes[] = 'ancestor';
}
}
// static homepage returns '' with basename( get_permalink( $item->object_id ) ) from below
if( trailingslashit( get_permalink( $item->object_id ) ) == trailingslashit( home_url() )
&& get_option( 'show_on_front' ) == 'page' ) {
$homepage_id = get_option( 'page_on_front' );
$thispage = get_post( $homepage_id );
$slug = $thispage->post_name;
$new_classes[] = $item_type . '-' . $slug;
} else {
if( $item_type == 'cat' ) {
$slug = esc_attr( basename( get_category_link( $item->object_id ) ) );
} else {
$slug = esc_attr( basename( get_permalink( $item->object_id ) ) );
}
$new_classes[] = $item_type . '-' . $slug;
}
return $new_classes;
}
add_filter( 'nav_menu_css_class', 'bfa_simplify_wp_nav_menu', 100, 2 );
function bfa_strip_wp_nav_menu_ids( $menu ) {
$menu = preg_replace( '/\<li id="(.*?)"/','<li', $menu );
return $menu;
}
add_filter ( 'wp_nav_menu', 'bfa_strip_wp_nav_menu_ids' );
function bfa_simplify_wp_list_pages( $classes, $page ) {
$new_classes = array( 'page-' . $page->post_name );
foreach( $classes as $class ) {
if( $class == 'current_page_item' ) {
$new_classes[] = 'active';
} elseif( $class == 'current_page_parent' ) {
$new_classes[] = 'parent';
} elseif( $class == 'current_page_ancestor' ) {
$new_classes[] = 'ancestor';
}
}
return $new_classes;
}
add_filter( 'page_css_class', 'bfa_simplify_wp_list_pages', 100, 2 );
wp-content/themes/montezuma/functions.php
<?php
// include all functions
foreach ( glob( get_template_directory() . "/includes/*.php") as $filename) {
include( $filename );
}
$upload_dir = wp_upload_dir();
// 2 db queries
if( FALSE === ( $bfa_thumb_transient = get_transient( 'bfa_thumb_transient' ) ) ) {
$bfa_thumb_transient = array();
}
// wp-content/uploads is writable and admin page was called at least once = created static css file exists:
if( is_file( $upload_dir['basedir'] . '/montezuma/style.css' ) ) {
$bfa_css = '<link rel="stylesheet" type="text/css" media="all" href="' . $upload_dir['baseurl'] . '/montezuma/style.css" />';
// Fallback: wp-content/uploads not writable or CSS file in wp-uploads not created yet (The Montezuma admin must be visited at least once for this).
} else {
$bfa_css = '
/*************************************************************************
Default CSS served INLINE because wp-content/uploads is not writable.
This will change once wp-content/uploads is writable
**************************************************************************/
';
$bfa_css .= implode( '', file( get_template_directory() . "/admin/default-templates/css/grids/resp12-px-m0px.css" ) );
foreach ( glob( get_template_directory() . "/admin/default-templates/css/*.css") as $filename) {
$bfa_css .= implode( '', file( $filename ) );
}
$bfa_css = str_replace( '%tpldir%', get_template_directory_uri(), $bfa_css );
$bfa_css = "\n<style type='text/css'>\n" . $bfa_css . "</style>\n";
}
// Enqueuing script with IE *version* condition currently not possible https://core.trac.www.ads-software.com/ticket/16024
add_action( 'wp_head', 'bfa_add_inline_scripts_head' );
function bfa_add_inline_scripts_head() {
global $is_IE; if( $is_IE ): ?>
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/javascript/html5.js" type="text/javascript"></script>
<script src="<?php echo get_template_directory_uri(); ?>/javascript/css3-mediaqueries.js" type="text/javascript"></script>
<![endif]-->
<?php endif;
}
// JavaScript for front end
add_action('wp_enqueue_scripts', 'bfa_enqueue_scripts');
function bfa_enqueue_scripts() {
global $montezuma, $upload_dir, $post;
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
// Check if this is a gallery page
$is_gallery = 0;
if( is_object( $post ) && strpos( $post->post_content,'[gallery' ) !== false ) { // check if $post is set on error page
$is_gallery = 1;
}
$enqu_list = array( 'jquery' );
// Load jquery-ui-core through dependencies, direct wp_enqueue_script('jquery-ui-core') may be broken
// https://www.ads-software.com/support/topic/wp_enqueue_script-with-jquery-ui-and-tabs ui-core, ui-.widget and effects-core needed by smooth-menu
$enqu_list[] = 'jquery-ui-core';
$enqu_list[] = 'jquery-ui-widget';
$enqu_list[] = 'jquery-effects-core';
if ( is_singular() && $montezuma['comment_quicktags'] != '' ) {
$enqu_list[] = 'quicktags';
}
if( $is_gallery === 1 ) {
wp_register_script( 'colorbox', get_template_directory_uri() . '/javascript/jquery.colorbox-min.js', array( 'jquery' ) );
$enqu_list[] = 'colorbox';
}
wp_register_script( 'smooth-menu', get_template_directory_uri() . '/javascript/smooth-menu.js', array( 'jquery' ) );
$enqu_list[] = 'smooth-menu';
// Premade javascript file if uploads not writable, i.e. first use or WP.org theme viewer:
if( is_file( $upload_dir['basedir'] . '/montezuma/javascript.js' ) ) {
$bfa_base_js_enqueue_url = $upload_dir['baseurl'] . '/montezuma/javascript.js';
} else {
$bfa_base_js_enqueue_url = get_template_directory_uri() . '/admin/default-templates/javascript/javascript.js';
}
wp_enqueue_script( 'montezuma-js', $bfa_base_js_enqueue_url, $enqu_list );
}
// https://wordpress.stackexchange.com/questions/24851/wp-enqueue-inline-script-due-to-dependancies
if( ! function_exists( 'bfa_print_footer_scripts' ) ):
function bfa_print_footer_scripts() {
global $montezuma;
if ( $montezuma['comment_quicktags'] != '' && wp_script_is( 'jquery', 'done' ) && is_singular() ) {
?>
<script type="text/javascript">quicktags({ id: 'comment-form', buttons: '<?php echo $montezuma['comment_quicktags']; ?>' });</script>
<?php
}
}
endif;
add_action( 'wp_footer', 'bfa_print_footer_scripts' );
function bfa_wp_title( $title, $sep ) {
global $paged, $page;
if( is_feed() ) {
return $title;
}
$title .= get_bloginfo( 'name' );
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
$title = "$title $sep $site_description";
}
if ( $paged >= 2 || $page >= 2 ) {
$title = "$title $sep " . sprintf( __( 'Page %s', 'montezuma' ), max( $paged, $page ) );
}
return $title;
}
add_filter( 'wp_title', 'bfa_wp_title', 10, 2 );
// THEME OPTIONS: new ThemeOptions( $title, $id, $path ) - $path = path to directory of section files containing arrays of option fields
if( is_admin() ) {
new ThemeOptions( 'Montezuma Options', 'montezuma', get_template_directory() . '/admin/options' );
}
$montezuma = get_option( 'montezuma' );
if( $montezuma['wlwmanifest_link'] != 1 ) {
remove_action('wp_head', 'wlwmanifest_link');
}
if( $montezuma['rsd_link'] != 1 ) {
remove_action('wp_head', 'rsd_link');
}
if( $montezuma['wp_generator'] != 1 ) {
remove_action('wp_head', 'wp_generator');
}
if( $montezuma['feed_links_extra'] != 1 ) {
remove_action( 'wp_head', 'feed_links_extra', 3 );
}
if( $montezuma['feed_links'] != 1 ) {
remove_action( 'wp_head', 'feed_links', 2 );
}
if( $montezuma['adjacent_posts_rel_link_wp_head'] != 1 ) {
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
}
// Theme setup
if( ! function_exists( 'montezuma_setup' ) ):
function montezuma_setup() {
if( ! isset( $content_width ) ) {
$content_width = 640;
}
load_theme_textdomain( 'montezuma', get_template_directory() . '/languages' );
add_theme_support( 'post-formats', array( 'aside', 'audio', 'chat', 'gallery', 'image', 'link', 'quote', 'status', 'video' ) );
add_theme_support( "post-thumbnails" );
// set_post_thumbnail_size( 320, 180, true );
add_theme_support("automatic-feed-links");
register_nav_menus( array( "menu1" => __( "Menu 1", "montezuma" ), "menu2" => __( "Menu 2", "montezuma" ) ) );
}
endif;
add_action( 'after_setup_theme', 'montezuma_setup' );
// Link post thumbs to post, not to full size image
function bfa_link_post_thumbnails_to_post( $html, $post_id, $post_image_id ) {
$html = str_replace('width="320" height="180" ', '', $html);
return $html;
}
add_filter( 'post_thumbnail_html', 'bfa_link_post_thumbnails_to_post', 10, 3 );
if( ! function_exists( 'bfa_comments_allowedtags' ) ) :
function bfa_comments_allowedtags( $data ) {
global $allowedtags, $montezuma;
$availabletags = array(
'a' => array( 'href' => true, 'title' => true ),
'abbr' => array( 'title' => true ),
'acronym' => array( 'title' => true ),
'b' => array(),
'blockquote' => array( 'cite' => true ),
'br' => array(),
'cite' => array(),
'code' => array(),
'del' => array( 'datetime' => true ),
'dd' => array(),
'dl' => array(),
'dt' => array(),
'em' => array (), 'i' => array (),
'ins' => array('datetime' => array(), 'cite' => array()),
'li' => array(),
'ol' => array(),
'p' => array(),
'q' => array( 'cite' => true ),
'strike' => array(),
'strong' => array(),
'sub' => array(),
'sup' => array(),
'u' => array(),
'ul' => array(),
);
$allowednow = array();
foreach( $montezuma['comment_allowed_tags'] as $tag ) {
$allowednow[$tag] = $availabletags[$tag];
}
$allowedtags = $allowednow;
return $data;
}
endif;
add_filter( 'preprocess_comment', 'bfa_comments_allowedtags' );
// filter tagcloud
if( ! function_exists( 'bfa_filter_tag_cloud' ) ) :
function bfa_filter_tag_cloud($tags) {
$tags = preg_replace_callback(
'|(class=\'tag-link-[0-9]+)(\'.*?)(style=\'font-size: )(.*?)(pt;\')|',
function ($match) {
$low = 1;
$high = 5;
$sz = round(($match[4] - 8.0) / (22 - 8) * ($high - $low) + $low);
return "{$match[1]} tagsize-{$sz}{$match[2]}";
},
$tags
);
return $tags;
}
endif;
add_action('wp_tag_cloud', 'bfa_filter_tag_cloud');
// Change default Excerpt Length to custom length:
function bfa_excerpt_length( $length ) {
return 55;
}
add_filter( 'excerpt_length', 'bfa_excerpt_length' );
// Build custom Read More link, used for both auto and manual excerpts
function bfa_read_more_link() {
return str_replace(
array( '%title%', '%url%' ),
array( the_title( '', '', FALSE ), esc_url( get_permalink() ) ),
' ...<a class="post-readmore" href="%url%">' . __( 'read more', 'montezuma' ) . '</a>'
);
}
// Replace default Read More link with custom one:
function bfa_excerpt_more( $more ) {
return bfa_read_more_link();
}
add_filter( 'excerpt_more', 'bfa_excerpt_more' );
// Add custom Read More link to manual excerpts:
function bfa_custom_excerpt_more( $output ) {
if( has_excerpt() && ! is_attachment() ) {
$output .= bfa_read_more_link();
}
return $output;
}
add_filter( 'get_the_excerpt', 'bfa_custom_excerpt_more' );
function bfa_include_file( $file_group, $file_name ) {
global $montezumafilecheck, $upload_dir;
$time_start = microtime(true); // Start timer
$file = trailingslashit( $upload_dir['basedir'] ) . "montezuma/$file_name.php";
if( ! file_exists( $file ) ) { // Edited file doesn't exist
include trailingslashit( get_template_directory() ) . "$file_group/$file_name.php";
} else {
extract( $montezumafilecheck['files'][$file_group][$file_name] ); // Get file info: $time, $size, $md5:
// Edited file exists. These checks should take around 5 ms on an average web server:
$filetime = filemtime( $file );
$filesize = filesize( $file );
$filemd5 = md5_file( $file );
// Include file only if live info matches with saved info:
if( $time == $filetime && $size == $filesize && $filemd5 == $md5 ) {
include trailingslashit( $upload_dir['basedir'] ) . "montezuma/$file_name.php";
}
$time_end = microtime(true); // Stop timer
$time = $time_end - $time_start;
echo "<!-- Rendered in $time seconds -->\n";
}
}
add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes=array() ) {
// adding 'css' and 'js' to supports Montezuma in a multisite environment
$existing_mimes['css'] = 'css file';
$existing_mimes['js'] = 'jscript file';
// and return the new full result
return $existing_mimes;
}
add_filter('upload_mimes', 'allow_custom_mimes');
function allow_custom_mimes ( $existing_mimes=array() ) {
// ' with mime type 'application/vnd.android.package-archive'
$existing_mimes['apk'] = 'application/vnd.android.package-archive';
return $existing_mimes;
}
]]>Since the last update, before content is shown, there are lots of the same error :
Warning: Undefined property: stdClass::$post_title in?/www/wwwroot/dev.domain.com/wp-content/plugins/multi-column-tag-map/mctagmap_functions.php?on line?814
Could you please look into this ? Thanks you!
]]>