• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Plugin nie działa poprawnie - Wordpress

VPS Starter Arubacloud
0 głosów
723 wizyt
pytanie zadane 6 stycznia 2017 w HTML i CSS przez Paweł Kieryk Początkujący (450 p.)

Cześć. 

Mam problem odnośnie wyświetlania się pluginu Vimeography.

Korzystam z dodatku ACF i tworzę pole do którego wkleja się shortcode, następnie AJAXem pobieram to pole i wyświetlam na stronie - w tym przypadku po uruchomieniu okna popup (tzw. modal).

Problem jest taki, że shortcode nie wyświetla się poprawnie w oknie, a gdy umieszczę go na stronie głównej, działa jak należy. 

Podaję link do strony: http://ggg205.nazwa.pl/instalator/wordpress/#directors

Modal wyświetla się po kliknięciu pierwszego obrazka z lewej strony. Jak widać jest tam player vimeo, który nie wyświetla się tak jak powinien.

Po analizie doszedłem do wnioski, że w modalu brakuje części kodu HTML tego pluginu, tak jakby go ucinał, lecz nie wiem czemu. 

Wkleję wam też mój kod funkcji która wysyła dane przez AJAX:

function prefix_ajax_nonpriv_load_image_data() {

	if(isset($_POST['id'])) {
		$id=$_POST['id'];
		//$response=wp_get_attachment($id);
    $valueField=get_field('Video1', $id);
    $valueField=str_replace('"', '"',$valueField);
		$response=[
    	"img"=>get_field('Portret',$id),
      "title"=>get_field('Nazwa_rezysera',$id),
      "descriptions"=>get_field('Opis_rezysera',$id),
      "link_1"=>do_shortcode($valueField),
      "link_2"=>get_field('Video2',$id),
      "link_3"=>get_field('Video3',$id),
    ];
    echo json_encode($response);
	}
	die();
}

Oraz kod pliku AJAX.js :

jQuery(document).ready(function($){

function build_video_code(msg) {
    var result="";
	if(msg['link_1'] != "" || msg['link_1'] != false)
		result+=msg['link_1'];
if(msg['link_2'] != "" || msg['link_2'] != false)
		result+='<div class="embed-responsive embed-responsive-16by9">'+
'<iframe class="embed-responsive-item" src="//player.vimeo.com/video/'+msg['link_2']+'"></iframe>'+
'</div>';
if(msg['link_3'] != "" || msg['link_3'] != false)
		result+='<div class="embed-responsive embed-responsive-16by9">'+
'<iframe class="embed-responsive-item" src="//player.vimeo.com/video/'+msg['link_3']+'"></iframe>'+
'</div>';    
  return result;
} 
 
  function paste_data(msg) {
    var html = '<h1 style="margin-bottom:30px;">'+msg['title']+'</h1>'+
               '<div class="col-lg-4 col-md-4">'+
                     '<img class="img-responsive img-center" src="'+msg["img"]['url']+'" alt="portret">'+
                     '</div>'+
                     '<div class="col-lg-8 col-md-8">'+
                     '<div class="row">'+
                 '<div class="col-lg-12">'+
                 '<p style="margin-bottom: 32px;">'+msg['descriptions']+'</p>'+
                 '</div>'+
                     '</div>'+
               '<div class="row">'+
                 '<div class="col-lg-12">'+
                       build_video_code(msg)+
                     '</div>'+
                     '</div>'+
                     '</div>';
    $('.remodal #loadDataModal').eq(0).html(html);
  }
 
  $("a img").on('click',function(){
    $('.loader').fakeLoader({
            spinner:"spinner1",//Options: 'spinner1', 'spinner2', 'spinner3', 'spinner4', 'spinner5', 'spinner6', 'spinner7'
            bgColor:"#2ecc71", //Hex, RGB or RGBA colors
    });
    var id=$(this).attr('data-id');
    $.ajax({
      url: ajax_image.ajax_url,
      type: "POST",
      dataType:"json",
      data:{
        action: 'load_image_data',
        id: id,
      },
 
      success : function(msg) {
        paste_data(msg);
      },
 
      error : function(error) {
        console.log(error);
      }
    });
  });
 
   
});

 

Wytłumaczy mi ktoś, dlaczego tak się dzieje? 

Dlaczego to w modalu nie wyświetla się prawidłowo, a gdy umieszczę kod ręcznie na stronie głównej, jest wszystko okej?

Pozdrawiam i czekam na odpowiedz!

2 odpowiedzi

0 głosów
odpowiedź 6 stycznia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
Jaki kod umieszcisz ręcznie?

Z tego co widzę, to link jest skopany , obiekt jest prawidłowo pobrany. Skopiowałem src i wyskoczył mi błąd. Jednakże , gdy dodałem odpowiedni nagłówek w tym przypadku https://player.vimeo.com/video/194343132 , link prawidłowo zadziałał. Możliwe, że przez to, że podałeś skróconą wersję, iframe nie działa. Bo dodałem poprawną wersję linku, iframe się załadował.
komentarz 6 stycznia 2017 przez Paweł Kieryk Początkujący (450 p.)

Nie o to chodzi. Chodzi mi jedynie o msg['link_1'], ponieważ te wcześniejsze linki pobierałem inaczej.

komentarz 6 stycznia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)

Albo ja jestem ślepy, albo te trzy są takie same...

Zobacz jak wygląda mój link, a jak wygląda twój.

Twoim problemem było, że

Modal wyświetla się po kliknięciu pierwszego obrazka z lewej strony. Jak widać jest tam player vimeo, który nie wyświetla się tak jak powinien.

Po drobnych poprawkach u mnie działa.

Zobacz w jakiej postaci są pobierane link z jsona. A potem zobacz jak wyświetlasz.

komentarz 6 stycznia 2017 przez Paweł Kieryk Początkujący (450 p.)
Wiem wiem, lecz chodzi mi o wyświetlanie shortcode wordpressa, a nie linków. Po prostu nie usunałem jeszcze tych funkcji.
komentarz 6 stycznia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
ASDHFJHFKSKS.... Czy funkcja do_shortcode to jest funkcja pluginu czy twoja własna. Jeżeli to drugie, to czy jest zamontowany odpowiedni filter?
komentarz 6 stycznia 2017 przez Paweł Kieryk Początkujący (450 p.)

Funkcja do_shortcode to funkcja wordpress. tutaj link

Ogólne założenie jest takie:

1) Użytkownik wkleja shortcode w pole tekstowe stworzone przez plugin ACF.

2) Zawartość pola jest pobierana funkcją get_field i wykładana do funkcji do_shortcode.

3) Zawartość jest wyświetlana na stronie.

Problem jest, że wyświetla się taki błąd: https://puu.sh/td7gp/d309f75f87.png

A shortcode wygląda tak: [vimeography id="3"]

Nie wiem dlaczego mówi, że nie istnieje galeria z ID 0, skoro czarno na białym widać, że shortcode wsazuje galerię z ID 3.

P.S. Na odtwarzacz pod spodem (pod błędem) nie patrz, testuję inne rozwiązanie.

 

 

komentarz 7 stycznia 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
ACF jest przepisany na sztywno do the_post(), mówiąc inaczej czy ACF jest kreowany wraz z postem.

Czy to ta funkcja podana wyżej, jest to w function.php ? Czy generujesz pętle while: the_post(). Bo wygląda na to, że nie iteruje po pętli.

Jak tworzysz galerie, po przez media. Sprawdż, czy zwraca get_post_gallery() wartośc true.

No chyba, ze udało Ci się rozwiązać problem.
0 głosów
odpowiedź 6 stycznia 2017 przez TrawiastY Początkujący (450 p.)
Ja bym skorzystał z gotowych shortcodow od Wordpressa, jest tam Vimeo. :)
komentarz 6 stycznia 2017 przez Paweł Kieryk Początkujący (450 p.)

O czym mówisz?

Mi potrzebny jest plugin, który wyświetla playlistę vimeo.

Tym pluginem jest Vimeography, no ale ten problem z wyświetleniem... 

tak powinien wyglądać vimeography

komentarz 6 stycznia 2017 przez TrawiastY Początkujący (450 p.)
Aha, sorry zrozumialem ze chcesz odtwarzacz vimeo.

Podobne pytania

0 głosów
1 odpowiedź 96 wizyt
pytanie zadane 21 stycznia 2020 w PHP przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
0 odpowiedzi 74 wizyt
pytanie zadane 9 kwietnia 2019 w PHP przez Jan Patryk Kowalski Obywatel (1,880 p.)
0 głosów
1 odpowiedź 84 wizyt
pytanie zadane 14 stycznia 2019 w PHP przez timati Bywalec (2,060 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...