• 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

0 głosów
52 wizyt
pytanie zadane 6 stycznia 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 przez ShiroUmizake Pasjonat (24,920 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 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 przez ShiroUmizake Pasjonat (24,920 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 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 przez ShiroUmizake Pasjonat (24,920 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 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 przez ShiroUmizake Pasjonat (24,920 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 przez TrawiastY Początkujący (450 p.)
Ja bym skorzystał z gotowych shortcodow od Wordpressa, jest tam Vimeo. :)
komentarz 6 stycznia 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 przez TrawiastY Początkujący (450 p.)
Aha, sorry zrozumialem ze chcesz odtwarzacz vimeo.

Podobne pytania

0 głosów
0 odpowiedzi 28 wizyt
pytanie zadane 14 lutego w PHP, Symfony, Zend przez Myszax Nowicjusz (120 p.)
0 głosów
1 odpowiedź 61 wizyt
0 głosów
1 odpowiedź 71 wizyt
pytanie zadane 5 sierpnia 2016 w JavaScript, jQuery, AJAX przez ashbone Użytkownik (520 p.)
...