Есть сайт на WordPress. Стоит задача вывести шорткод в нескольких местах в шаблоне. В некоторых php файлах вывести получилось вот таким методом:
elseif(!empty($deafaultFeatImg)){echo do_shortcode( '[featured-video-plus]' );
Но при добавлении в другом месте (в файле под названием "main.js") таким образом: var popLeftSide = '' + '' +''echo do_shortcode( '[featured-video-plus]' );'' +'' +...
страница подгружается не полностью и, соответственно, сам шорткод не выводится. Если таким образом:
var popLeftSide = '<div class="col-md-6 lp-insert-data">' + '<div class="lp-grid-box-thumb">' + '<div class="slide">[featured-video-plus]</div>' +...
то шорткод не срабатывает - выводится просто текстом: [featured-video-plus].
Подскажите, в чем может быть проблема?
Это дополненный код:`
jQuery('#listing-preview-popup .md-close').hide();
var docHeight = jQuery( document ).height();
jQuery( "body" ).prepend( '<div id="full-overlay"></div>' );
jQuery('#full-overlay').css('height',docHeight+'px');
jQuery('#listing-preview-popup .popup-inner-left-padding').html('').css('min-hegiht', '300px');
if(jQuery('#listing-preview-popup').is('.md-show')) {
}else{
jQuery('#listing-preview-popup').modal({
show: 'true'
});
jQuery('#listing-preview-popup').addClass('md-show');
}
jQuery.ajax({
url: ajax_search_term_object.ajaxurl,
dataType: "json",
data: {
'action':'quick_preivew_cb',
'LPpostID' : LPpostID
},
success:function(data) {
jQuery('#listing-preview-popup .md-close').show().children('i').css('right', '20px');
var ad_markup = '';
var rate_markup = '';
if(data.noreview){
rate_markup = data.noreview;
}
if(data.adStatus == 'active')
{
ad_markup = '<span class="listing-pro">'+data.ad+'</span>';
}
if(data.rate != ''){
rate_markup = '<span class="rate">'+ data.rate +'<sup>/5</sup></span>'
}
var popLeftSide = '<div class="col-md-6 lp-insert-data">' +
'<div class="lp-grid-box-thumb">' +
'<div class="slide"><?php echo do_shortcode( '[featured-video-plus]' ); ?></div>' +
'</div>' +
'<div class="lp-grid-desc-container lp-border clearfix">' +
'<div class="lp-grid-box-description ">' +
'<div class="lp-grid-box-left pull-left">' +
'<h4 class="lp-h4"><a href="'+ data.permalink +'">'+ ad_markup + LPtitle +'</a></h4>' +
'<ul>' +
'<li>'+ rate_markup +'</li>';
if(data.pricey!=null){
popLeftSide +='<li class="middle">' + data.pricey +'</li>';
}
popLeftSide += '<li>' + data.cats_markup +'</li>' +
'<li>' +
'<a href="tel:'+ data.phone +'">'+ data.phone +'</a>' +
'</li>' +
'</ul>';
if(data.post_content!=false){
popLeftSide +=
'<div class="lp-grid-desc">' +
'<p>'+ data.post_content +'</p>' +
'</div>';
}
popLeftSide +=
'</div>' +
'<div class="lp-grid-box-right pull-right"></div>' +
'</div>' +
'<div class="lp-grid-box-bottom">' +
'<div class="pull-left">' + data.adress_markup +'</div>' +
'<div class="pull-right">' +
'<a class="status-btn">'+ data.openStatus +'</a>' +
'</div>' +
'<div class="clearfix"></div>' +
'</div>' +
'</div>' +
'</div>';
var rightSideMarkup = '<div class="col-md-6">' +
'<div id="quickmap'+ LPpostID +'" class="quickmap"></div>';
'</div>';
jQuery('#listing-preview-popup .popup-inner-left-padding').html(popLeftSide + rightSideMarkup);
var markers = false;
$mtoken = jQuery('#page').data("mtoken");
$defpinURL = jQuery('.lp-grid-box-contianer').data("lppinurl");
$lat = LPlattitue;
$lan = LPlongitute;
if($mtoken != ''){
L.mapbox.accessToken = $mtoken;
map = L.mapbox.map('quickmap'+LPpostID, 'mapbox.streets');
}else{
var map = new L.Map('quickmap'+LPpostID, {center: new L.LatLng($lat,$lan), zoom: 14});
var googleLayer = new L.Google('ROADMAP');
map.addLayer(googleLayer);
}
map.setView([$lat,$lan], 14);
markers = new L.MarkerClusterGroup();
var markerLocation = new L.LatLng($lat, $lan); // London
var CustomHtmlIcon = L.HtmlIcon.extend({
options : {
html : "<div class='lpmap-icon-shape pin lp-default-map-pin-img'><div class='lpmap-icon-contianer'><img src='"+$defpinURL+"'></div></div>",
}
});
var customHtmlIcon = new CustomHtmlIcon();
var marker = new L.Marker(markerLocation, {icon: customHtmlIcon}).bindPopup('').addTo(map);
markers.addLayer(marker);
jQuery('.md-close.widget-map-click').on('click', function(e){
jQuery('#full-overlay').remove();
});
`
Функция do_shortcode() возвращает строку с результатом выполнения шорткода. Поэтому, если вы просто поместите текст шорткода, он и выведется как текст. Чудес не бывает.
В вашем втором случае я вообще не понимаю, что вы делаете. Похоже, что вы пытаетесь впихнуть функцию php в js код. Это не может работать в принципе. Предположу, что это часть php кода, в котором формируется js скрипт. Тогда надо примерно так:
var popLeftSide = '<div class="col-md-6 lp-insert-data">' + '<div class="lp-grid-box-thumb">' +'<div class="slide"><?php echo do_shortcode( '[featured-video-plus]' ); ?></div>' +'</div>' +...
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеВозможно ли как-то с помощью Google Maps Api получить координаты в форму? Например, у меня есть какой-то фрейм с картой, я там ставлю...
ЗдравствуйтеПодскажите, как можно вывести значение из базы данных в массив
С помощью каких инструментов можно реализовать древовидную структуру? Иерархическая модель компании: допустим есть 1 начальник, 3 менеджера...