Есть ли способ манипулировать стилями записей WordPress, загруженными во внешний iframe? - PullRequest
0 голосов
/ 30 апреля 2019

Я делаю виджет, в котором мне нужно показать последние сообщения и архив блогов с сайта WordPress.Я могу получить каналы для виджета, загрузив содержимое в iframe.Но мне не нужно, чтобы верхний и нижний колонтитулы WordPress страниц отображались в виджете.

Я использовал несколько плагинов для создания фиктивной страницы без верхнего и нижнего колонтитула, которая работает для архива блогов.Но для отдельной страницы постов плагин не позволит мне взять верхний и нижний колонтитулы.

Я столкнулся с проблемой перекрестного источника при попытке доступа к содержимому в iframe из виджета.

Есть ли другой способ сделать это в виджете?Или есть ли способ сделать это внутри WordPress?

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Мне удалось решить эту проблему, проверив, загружена ли страница (WordPress) в iframe, и, если да, внести определенные изменения в стиль.Я сделал это внутри самого WordPress, поэтому каждый раз, когда страница загружается в виджет, он знает, что находится внутри iframe, и, таким образом, меняет стиль.

$( document ).ready(function() {
  if (top === self) {
    //do nothing
  } else { 
  jQuery( ".single-post header" ).css( "display", "none" );
  jQuery( ".single-post .related_wrap" ).css( "display", "none" );
  jQuery( ".single-post .comments_wrap" ).css( "display", "none" );
  jQuery( ".single-post footer" ).css( "display", "none" );
  }
});
0 голосов
/ 30 апреля 2019

Вы не можете получить доступ к DOM iframe. То, что вы собираетесь сделать, это извлечь внешний контент (в настоящее время загружается в iframe) и управлять им с помощью библиотеки php, такой как PHPQuery или SimpleHtmlDOM . Исходя из моего опыта, PHPQuery работает лучше, чем другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...