: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
if (function_exists('attachment_url_to_postid')) {
$image_id = attachment_url_to_postid( $url );
$image_src = wp_get_attachment_image_src( $image_id, 'full' );
$seopress_twitter_img = '';
$seopress_twitter_img .= '<meta property="twitter:image" content="'.esc_url($url).'" />';
$seopress_twitter_img .= "\n";
//OG:IMAGE:SECURE_URL IF SSL
$seopress_twitter_img .= '<meta property="twitter:image:secure_url" content="'.esc_url($url).'" />';
$seopress_twitter_img .= "\n";
//OG:IMAGE:WIDTH + OG:IMAGE:HEIGHT
if (!empty($image_src)) {
$seopress_twitter_img .= '<meta property="twitter:image:width" content="'.esc_attr($image_src[1]).'" />';
$seopress_twitter_img .= "\n";
$seopress_twitter_img .= '<meta property="twitter:image:height" content="'.esc_attr($image_src[2]).'" />';
$seopress_twitter_img .= "\n";
if (get_post_meta($image_id, '_wp_attachment_image_alt', true) !='') {
$seopress_twitter_img .= '<meta property="twitter:image:alt" content="'.esc_attr(get_post_meta($image_id, '_wp_attachment_image_alt', true)).'" />';
$seopress_twitter_img .= "\n";
//Hook on post OG thumbnail - 'seopress_social_og_thumb'
if (has_filter('seopress_social_og_thumb')) {
$seopress_twitter_img = apply_filters('seopress_social_og_thumb', $seopress_twitter_img);
if (isset($seopress_twitter_img) && $seopress_twitter_img !='') {
echo $seopress_twitter_img; // escaped above
// yoast author twitter handle #2133
if ( ! function_exists('ampforwp_yoast_twitter_handle') ) {
function ampforwp_yoast_twitter_handle() {
if ( class_exists('WPSEO_Frontend') ) {
$twitter = get_the_author_meta( 'twitter', $post->post_author );
if ( function_exists('mvp_setup') ) {
return ' <span><a class="zox_tw" href="https://twitter.com/'.esc_attr($twitter).'" target="_blank"></a></span>';
$parse = parse_url($twitter);
if(isset($parse['host']) && $parse['host'] == 'twitter.com'){
$twitter_url = 'https://twitter.com/'.esc_attr($twitter);
if(ampforwp_design_selector()==4){
return ' <span><a class="author-tw" href="'.esc_url($twitter_url).'" target="_blank"></a></span>';
return '<a title="twitter share" href="'.esc_url($twitter_url).'" class="amp-social-icon-rounded-author amp-social-twitter">
<amp-img src="'.AMPFORWP_IMAGE_DIR . '/twitter-icon.webp'.'" width="16" height="16" ></amp-img></a>';
// #3124 enfold theme shortcodes removed
add_action('init','ampforwp_enfold_theme_compatibility',2);
if(!function_exists('ampforwp_enfold_theme_compatibility')){
function ampforwp_enfold_theme_compatibility(){
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH),'/' );
$explode_path = explode('/', $url_path);
if ( AMPFORWP_AMP_QUERY_VAR === end( $explode_path) ) {
remove_filter('avia_load_shortcodes','add_shortcode_folder',11);
if(!function_exists('ampforwp_remove_enfold_theme_shortcodes_tags')){
function ampforwp_remove_enfold_theme_shortcodes_tags($content){
$content = preg_replace('/\[av_(.*?)]/', ' ', $content);
$content = preg_replace('/\[\/av_(.*?)]/', ' ', $content);
//Need to AMP compatible with this plugin HTTP / HTTPS Remover #3123
add_action('wp_loaded','ampforwp_http_remover_support');
function ampforwp_http_remover_support(){
if ( class_exists('HTTP_HTTPS_REMOVER')){
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH),'/' );
if (true == ampforwp_get_setting('amp-core-end-point')) {
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_QUERY),'/' );
$explode_path = explode('/', $url_path);
if ( AMPFORWP_AMP_QUERY_VAR === end( $explode_path)) {
global $http_https_remover;
remove_action('wp_loaded', array(
//AMP Woocommerce function
function ampforwp_woocommerce_conditional_check(){
if(!defined('AMP_WOOCOMMERCE_PLUGIN_URI')){
if(function_exists('is_product') && is_product()){
}elseif(function_exists('is_cart') && is_cart()){
}elseif(function_exists('is_shop') && is_shop()){
}elseif(function_exists('is_checkout') && is_checkout()){
}elseif(function_exists('is_account_page') && is_account_page()){
return apply_filters('ampforwp_woocommerce_conditional_check', $showSingleCss);
function ampforwp_non_amp_gallery($matches){
$images = preg_replace_callback("/<img(.*?)>/", function($m){
return '<li class="mySlides fade">'.$m[0]. /* $m[0] is already sanitized, XSS OK */'</li>';
$imagesHTML = '<ul class="slideshow-container">'.$images. /* $images is already sanitized, XSS OK */'<a class="nonamp-prev" onclick="plusSlides(-1)">❮</a>
<a class="nonamp-next" onclick="plusSlides(1)">❯</a></ul>';
// MISTAPE PLUGIN COMPATIBILITY #3974
if(function_exists('deco_mistape_init')){
add_action('amp_post_template_css', 'ampforwp_mistape_plugin_style');
if(!function_exists('ampforwp_mistape_plugin_style')){
function ampforwp_mistape_plugin_style(){
$css = '.mistape_caption{font-size:80%;opacity:.8}.mistape-logo svg{display:block;height:22px;width:22px;fill:#e42029}.mistape_caption .mistape-link{text-decoration:none;border:none;box-shadow:none}.mistape-link:hover{text-decoration:none;border:none}';
echo ampforwp_css_sanitizer($css);
if(!function_exists('ampforwp_mistape_plugin_compatibility')){
function ampforwp_mistape_plugin_compatibility($content){
if(function_exists('deco_mistape_init')){
$rep = '<a href="https://mistape.com" target="_blank" rel="nofollow" class="mistape-link mistape-logo"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="40px" height="40px" viewBox="-12 -10 39.9 40" enable-background="new -12 -10 39.9 40" xml:space="preserve">';
$content = preg_replace('/<span\sclass=\"mistape-link-wrap">(.*?)<\/span>/', $rep.'$1</svg></a>', $content);
function ampforwp_valid_amp_componet_script(){
$ce_valid_scripts = array('amp-3d-gltf','amp-3q-player','amp-access','amp-analytics','amp-access-laterpay','amp-access-poool','amp-accordion','amp-action-macro','amp-ad-exit','amp-ad','amp-embed','amp-addthis','amp-anim','amp-animation','amp-apester-media','amp-app-banner','amp-audio','amp-auto-ads','amp-autocomplete','amp-base-carousel','amp-beopinion','amp-bind','amp-bodymovin-animation','amp-brid-player','amp-brightcove','amp-byside-content','amp-call-tracking','amp-carousel','amp-connatix-player','amp-consent','amp-dailymotion','amp-date-countdown','amp-date-picker','amp-delight-player','amp-dynamic-css-classes','amp-embedly-card','amp-experiment','amp-facebook-comments','amp-facebook-like','amp-facebook-page','amp-facebook','amp-fit-text','amp-font','amp-form','amp-fx-collection','amp-fx-flying-carpet','amp-geo','amp-gfycat','amp-gist','amp-google-document-embed','amp-google-vrview-image','amp-hulu','amp-iframe','amp-ima-video','amp-image-lightbox','amp-image-slider','amp-imgur','amp-inputmask','amp-instagram','amp-install-serviceworker','amp-izlesene','amp-jwplayer','amp-kaltura-player','amp-lightbox-gallery','amp-lightbox','amp-link-rewriter','amp-list','amp-live-list','amp-mathml','amp-mega-menu','amp-megaphone','amp-minute-media-player','amp-form','amp-mustache','amp-next-page','amp-nexxtv-player','amp-o2-player','amp-ooyala-player','amp-orientation-observer','amp-pan-zoom','amp-pinterest','amp-playbuzz','amp-position-observer','amp-powr-player','amp-reach-player','amp-recaptcha-input','amp-redbull-player','amp-reddit','amp-riddle-quiz','amp-script','amp-selector','amp-sidebar','amp-skimlinks','amp-smartlinks','amp-social-share','amp-soundcloud','amp-springboard-player','amp-sticky-ad','amp-story-auto-ads','amp-story','amp-subscriptions-google','amp-subscriptions','amp-timeago','amp-truncate-text','amp-twitter','amp-user-notification','amp-video-docking','amp-video-iframe','amp-video','amp-vimeo','amp-vine','amp-viqeo-player','amp-viz-vega','amp-vk','amp-web-push','amp-wistia-player','amp-yotpo','amp-youtube','amp-story-player','amp-wordpress-embed');
$ce_valid_scripts = apply_filters('ampforwp_valid_amp_component_script',$ce_valid_scripts);
return $ce_valid_scripts;
//iframes are not working with WP optimize premium #4290
add_filter('wp_optimize_lazy_load_hook_these','ampforwp_wp_optimize_iframe');
function ampforwp_wp_optimize_iframe($content){
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH),'/' );
$explode_path = explode('/', $url_path);
if ( AMPFORWP_AMP_QUERY_VAR === end( $explode_path)) {
$content = array_flip($content);
unset($content['the_content']);
add_action('init','ampforwp_include_required_yoast_files');
function ampforwp_include_required_yoast_files(){
if(class_exists('WPSEO_Premium') && defined('WPSEO_VERSION') && version_compare(WPSEO_VERSION,'15.8', '>=') && !method_exists('WPSEO_Meta_Columns', 'get_context_for_post_id')){
// Yoast SEO 14+ support helper class #4574
$include_file = $include_yoast_files = $include_yoast_premium_files= '';
$include_yoast_files = WP_PLUGIN_DIR . '/wordpress-seo/admin/class-meta-columns.php';
$include_yoast_premium_files = WP_PLUGIN_DIR . '/wordpress-seo-premium/admin/class-meta-columns.php';
if ( file_exists($include_yoast_files) && function_exists('wpseo_init') ) {
$include_file = $include_yoast_files;
if ( file_exists($include_yoast_premium_files) && class_exists('WPSEO_Premium')) {
$include_file = $include_yoast_premium_files;
if ( file_exists($include_file) ){
require_once($include_file);
class Ampforwp_Yoast_Data extends WPSEO_Meta_Columns {
public function get_context_for_post_id($id) {
if ( method_exists('WPSEO_Meta_Columns', 'get_context_for_post_id')) {
return parent::get_context_for_post_id($id);
// Load ampforwp markup prior to marfeel amp #4560
add_action('plugin_loaded','ampforwp_execute_amp_prior_marfeel', 10);
function ampforwp_execute_amp_prior_marfeel(){
if(function_exists('mrfp_activate_marfeel_press') && isset($wp_filter['plugins_loaded']->callbacks[9])){
$current_url = filter_input(INPUT_SERVER, 'REQUEST_URI');
$amp_endpoint = explode('/', $current_url);
foreach ($wp_filter['plugins_loaded']->callbacks[9] as $key => $value) {
if((in_array('amp', $amp_endpoint ) || in_array('?amp', $amp_endpoint) || in_array('?amp=1', $amp_endpoint) ) && isset($value['function']['1']) && $value['function']['1'] == 'marfeel_press_init'){
unset($wp_filter['plugins_loaded']->callbacks[9][$key]);
//Removed OMGF Host Google Fonts Locally in AMP #4775
if(function_exists( 'omgf_pro_init' ) ){
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH),'/' );
if( function_exists('ampforwp_is_amp_inURL') && ampforwp_is_amp_inURL($url_path)) {
remove_action( 'plugins_loaded', 'omgf_pro_init', 49 );
function ampforwp_is_amp_inURL($url){
if (ampforwp_get_setting('amp-core-end-point')) {
$url = home_url(add_query_arg(array($_GET), $wp->request));
$urlArray = explode("/", $url);
if( in_array( '?' . AMPFORWP_AMP_QUERY_VAR , $urlArray ) ) {
foreach($urlArray as $index => $string) {
if (strpos($string, '?' . AMPFORWP_AMP_QUERY_VAR) !== FALSE)
if (ampforwp_get_setting('ampforwp-amp-takeover')) {
if(get_option('permalink_structure') == '' && isset($_GET['amp'])){
if (class_exists('AMPforWP_Subdomain_Endpoint') && ampforwp_get_setting('amp-subdomain-url-format')) {
if(function_exists('ampforwp_mobile_redirect_preseve_link')){
$mob_pres_link = ampforwp_mobile_redirect_preseve_link();
if ($mob_pres_link == true) {
$urlArray = explode("/", $url);
if( !in_array( AMPFORWP_AMP_QUERY_VAR , $urlArray ) ) {
function ampforwp_show_yoast_seo_local_map($content){
if(function_exists('wpseo_local_seo_init') && preg_match('/wpseo-map-canvas/', $content)){
$options = get_option( 'wpseo_local' );
$local_address = $options['location_address'];
$location_city = $options['location_city'];
$location_state = $options['location_state'];
$location_zipcode = $options['location_zipcode'];
$location_country = $options['location_country'];
$address = $local_address.", ".$location_city.", ".$location_state.", ".$location_zipcode.", ".$location_country;
$location_coords_lat = $options['location_coords_lat'];
$location_coords_long = $options['location_coords_long'];
$googlemaps_api_key = $options['googlemaps_api_key'];
$map_str = '<iframe width="350" height="250" frameborder="0" style="border:0" src="https://www.google.com/maps/embed/v1/place?key='.esc_attr($googlemaps_api_key).'&q='.urlencode($address).'¢er='.esc_attr($location_coords_lat).','.esc_attr($location_coords_long).'" allowfullscreen>
$sanitizer = new AMPFORWP_Content( $map_str, array(),
apply_filters( 'ampforwp_content_sanitizers',
'AMP_Style_Sanitizer' => array(),
'AMP_Blacklist_Sanitizer' => array(),
'AMP_Img_Sanitizer' => array(),
'AMP_Video_Sanitizer' => array(),
'AMP_Audio_Sanitizer' => array(),
'AMP_Iframe_Sanitizer' => array(
'add_placeholder' => true,
$map_str = $sanitizer->get_amp_content();
$content = preg_replace('/(<div\sid="(.*?)"(.*?)class="wpseo-map-canvas(.*?)">)(.*?)(<\/div>)/s', '$1'.$map_str.'$6', $content);
preg_match('/(<div\sid="(.*?)"(.*?)class="wpseo-map-canvas(.*?)">)(.*?)(<\/div>)/s', $content,$match);
$content = str_replace($match[4], '', $content);
$content = preg_replace('/<div id="wpseo-directions-wrapper">(.*?)<\/div>/s','', $content);
function ampforwp_final_tiles_grid_gallery($mobile){
if(!function_exists('ampforwp_category_image_compatibility')){
function ampforwp_category_image_compatibility($type='',$class=''){
if(function_exists('z_taxonomy_image_url')){
$cat_url = z_taxonomy_image_url();
if(function_exists('ampforwp_get_retina_image_settings')){
$ret_config = ampforwp_get_retina_image_settings(intval($r_width),intval($r_height));
$r_width = intval($ret_config['width']);
$r_height = intval($ret_config['height']);
$cat_image = '<div class="'.esc_attr($class).'"><amp-img src="'.esc_url($cat_url).'" width="'.intval($r_width).'" height="'.intval($r_height).'" layout="fixed"></amp-img></div>';
function ampforwp_zeen_lazyload($lazyload){
add_action('plugins_loaded', 'ampforwp_jetpack_boost_compatibility' , 1);
function ampforwp_jetpack_boost_compatibility(){
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH),'/' );
if (function_exists('\Automattic\Jetpack_Boost\run_jetpack_boost') && function_exists('ampforwp_is_amp_inURL') && ampforwp_is_amp_inURL($url_path) && !is_admin()) {
remove_action( 'plugins_loaded', '\Automattic\Jetpack_Boost\run_jetpack_boost', 1 );
if(!function_exists('ampforwp_get_coauthor_id')){
function ampforwp_get_coauthor_id()
$author_name = esc_attr(get_query_var('author_name'));
$coauthor_id = get_the_author_meta( 'ID' );
$coauthors = get_the_coauthor_meta('login');
foreach($coauthors as $key=>$value)
if(!function_exists('ampforwp_get_coauthor_meta')){
function ampforwp_get_coauthor_meta($meta_name=null)
if(!function_exists('get_the_coauthor_meta') || !$meta_name)
$coauthor_id = get_the_author_meta( 'ID' );
$author_name = esc_attr(get_query_var('author_name'));
$coauthors = get_the_coauthor_meta('login');
foreach($coauthors as $key=>$value)
if($meta_name=='avatar_url')
$meta_value = get_avatar_url($coauthor_id,array('size'=>180));
$meta_value = get_the_coauthor_meta($meta_name,$coauthor_id);
if(is_array($meta_value))
$meta_value=$meta_value[$coauthor_id];
return esc_html($meta_value);
add_action('template_redirect', 'ampforwp_callrail_buffer_start', 0);
function ampforwp_callrail_buffer_start() {
if(ampforwp_is_callrail_switch_active()){
$url_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH),'/' );
if(function_exists('ampforwp_is_amp_inURL') && ampforwp_is_amp_inURL($url_path) && !is_admin()) {
add_action('shutdown', 'ampforwp_callrail_buffer_stop', PHP_INT_MAX);
ob_start('ampforwp_callrail_modify_content');
function ampforwp_callrail_buffer_stop() {
if(ob_get_length() > 0) {
function ampforwp_callrail_modify_content($content) {
$config_url = $number = $analytics_url = '';
$config_url = ampforwp_get_setting('ampforwp-callrail-config-url');
$number = ampforwp_get_setting('ampforwp-callrail-number');
$number_2 = ampforwp_callrail_get_formated_phone($number); // getting number in format 123-456-7890
$number_2_replace= '(<a(.*?)href="tel:((.*?-)?'.esc_attr($number_2).')"(.*?)>(.*?)<\/a>)'; // regex for matching number format with anchor tag
$analytics_url = ampforwp_get_setting('ampforwp-callrail-analytics-url');
$call_rail_analytics = '<amp-call-tracking config="'.esc_url($config_url).'"><a href="tel:'.esc_attr($number).'">'.esc_html($number).'</a></amp-call-tracking><amp-analytics config="'.esc_url($analytics_url).'"></amp-analytics>';
$content = str_replace($number, $call_rail_analytics, $content);
$content = preg_replace($number_2_replace, $call_rail_analytics, $content); // replacing number with call tracing code
$ct_test = '<amp-call-tracking config="'.esc_url($config_url).'"><a href="tel:'.esc_attr($number).'">'.esc_attr($number).'</a></amp-call-tracking>';
$content = preg_replace('/<a(.*?)><amp-call-tracking(.*?)><a(.*?)<\/a>/', $ct_test, $content);
function ampforwp_callrail_get_formated_phone($number){
$number = preg_replace("/[^\d]/","",$number);
$number = preg_replace("/^1?(\d{3})(\d{3})(\d{4})$/", "$1-$2-$3", $number);
function ampforwp_is_callrail_switch_active()
if(ampforwp_get_setting('ampforwp-callrail-switch')){
$config_url = $number = $analytics_url = '';
$config_url = ampforwp_get_setting('ampforwp-callrail-config-url');
$number = ampforwp_get_setting('ampforwp-callrail-number');
$analytics_url = ampforwp_get_setting('ampforwp-callrail-analytics-url');
if(!empty($config_url) && !empty($number) && !empty($analytics_url)){
add_action('pre_amp_render_post', 'amp_saswp_faq_comp');
function amp_saswp_faq_comp(){
if ( function_exists('ampforwp_is_amp_endpoint') && ampforwp_is_amp_endpoint() ) {
remove_shortcode('saswp_tiny_multiple_faq');
add_shortcode( 'saswp_tiny_multiple_faq', 'amp_saswp_tiny_multi_faq_render' );
function amp_saswp_tiny_multi_faq_render( $atts, $content = null ){
global $saswp_tiny_multi_faq;
$saswp_tiny_multi_faq = shortcode_atts(
foreach ( $atts as $key => $merged_att ) {
if ( strpos( $key, 'headline' ) !== false || strpos( $key, 'question' ) !== false || strpos( $key,
'answer' ) !== false || strpos( $key, 'image' ) !== false ) {
$saswp_tiny_multi_faq['elements'][ explode( '-', $key )[1] ][ substr( $key, 0, strpos( $key, '-' ) ) ] = $merged_att;
if($saswp_tiny_multi_faq['html'] == 'true'){
if( !empty($saswp_tiny_multi_faq['elements']) ){
foreach ($saswp_tiny_multi_faq['elements'] as $value) {
$output .= '<'.esc_attr($value['headline']).'>';
$output .= esc_html($value['question']);
$output .= '</'.esc_attr($value['headline']).'>';
if ( ! empty( $value['image'] ) ) {
$image_id = intval( $value['image'] );
$image_thumburl = wp_get_attachment_image_url( $image_id, [ 150, 150 ] );
$output .= '<a href="'.esc_url(esc_url($image_thumburl)).'"><img class="saswp_tiny_faq_image" src="'.esc_url($image_thumburl).'"></a>';