Ошибка при попытке поделиться сайтом

Я пытаюсь создать ссылку общего доступа для определенного типа динамической страницы на моем веб-сайте. У страницы есть базовый шаблон, но затем на ней запускается большой PHP-скрипт, который анализирует XML для создания фактического полезного контента.

Типичный общий ресурс facebook или подобное, похоже, вытягивает заголовок и содержимое базового шаблона, а не конечную страницу, и это было для меня довольно бесполезно, поэтому я нашел этот код для создания настраиваемой ссылки общего доступа, где вы можете перезаписать заголовок, описание , фото и т. д .:

            $title=urlencode($xml->pet->name . ' | DPA!');
            $url=urlencode($_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]);
            $summary=urlencode($xml->pet->name . ' is available for adoption.');
            $image=urlencode($thumbnail_photo);

            ?>
            <a onClick="window.open('http://www.facebook.com/sharer.php?s=100&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;&amp;p[images][0]=<?php echo $image;?>','sharer','toolbar=0,status=0,width=548,height=325');" href="javascript: void(0)">Share on Facebook</a></div>
            <?php

При этом открывается окно совместного доступа по желанию с тем, что кажется правильной информацией, но когда я иду, чтобы поделиться, я получаю эту ошибку:

Сообщение не может быть размещено на этой стене

На моем сайте работает Wordpress. Может ли кто-нибудь сказать мне, почему возникает эта ошибка?

Также обратите внимание, что я пробовала изменить разрешения для общего ресурса, пробовала другой браузер и даже попросила мужа попробовать его на своем компьютере и в своей учетной записи.

Изменить: вот откуда взялся код: http://www.daddydesign.com/wordpress/how-to-create-a-custom-facebook-share-button-for-your-iframe-tab/

Изменить № 2: Для получения дополнительной информации страница является «страницей» в Wordpress с настраиваемым шаблоном. У шаблона есть заголовок-заполнитель, который является просто «Базовым заголовком». Фактический отображаемый заголовок на странице создается постфактум, потому что я должен сначала прочитать XML, чтобы узнать, каким будет заголовок. Все типичные коды лайков или акций, которые я пробовал, используют «Базовый заголовок» в качестве заголовка страницы, которой я делюсь. Они также не извлекают изображения или текст из содержимого, которое существует за пределами шаблона страницы. Следовательно, они мне бесполезны.

Редактировать № 3: я поместил образец URL-адреса в инструмент отладки facebook и заметил что-то странное. В разделе перенаправления исходный URL-адрес был правильным, но URL-адрес "rel =" canonical "" является URL-адресом для базового шаблона. Исходный URL-адрес имеет аргумент HTML, который позволяет коду PHP знать, какой XML нужно получить. «Очищенный URL-адрес» показывает, что происходит, когда не указан аргумент. Не знаю, поможет ли это.


person ktbird7    schedule 30.09.2012    source источник
comment
Есть ли у вас более полный пример или документация, на которые вы могли бы указать нам?   -  person Todd Chaffee    schedule 30.09.2012
comment
Вот откуда взялся код: daddydesign.com/wordpress/   -  person ktbird7    schedule 30.09.2012


Ответы (1)


Конечная точка sharer.php устарела в течение некоторого времени. Судя по тому, что я вижу на SO, Facebook, похоже, отключает его сейчас. Вы не должны зависеть от этого в работе. Ваш пример учебного пособия не датирован, но комментарии относятся к июлю 2011 года.

Текущая реализация кода Facebook Share анализирует метаданные на целевой странице и использует эту информацию.

Судя по вашему описанию, это звучит так, будто вы вызываете get_header() перед тем, как проанализируете свой XML-файл, и ваш «Базовый заголовок» отображается в метаданных страницы. Вы не можете этого сделать. Сначала вам нужно будет проанализировать свой XML, а затем вызвать get_header(). Ваш header.php, вероятно, также потребуется настроить, чтобы он брал правильные данные из вашего XML-файла и использовал их для генерации метаданных.

person cpilko    schedule 30.09.2012
comment
Я ценю понимание, но это большая работа только для кнопки «Нравится» :( У меня есть сотни строк PHP, которые не будут работать до get_header () - person ktbird7; 01.10.2012
comment
Вам следует переосмыслить свой проект, если перед обработкой данных необходимо вызвать get_header(). У меня есть несколько сайтов на базе WP, на которых я обрабатываю данные вне базы данных WP с огромным количеством настраиваемого кода. Все это завершается до того, как я сгенерирую какой-либо вывод. - person cpilko; 01.10.2012
comment
Даже после перемещения кода у меня все еще есть проблема с facebook, использующим канонический URL-адрес, а не фактический URL-адрес с аргументом. XML и, следовательно, содержимое страницы полностью зависят от аргумента HTML, но отладчик facebook показывает, что facebook захватывает только часть URL-адреса минус аргумент. - person ktbird7; 01.10.2012
comment
Не могли бы вы привести более конкретные примеры (например, URL-адреса, фрагменты исходного кода и т. Д.)? - person cpilko; 01.10.2012
comment
Кажется, я решил эту проблему, добавив remove_action ('wp_head', 'rel_canonical'); в functions.php - person ktbird7; 02.10.2012