Как указать URL «Мне нравится» на идентификатор на странице коллекции портфолио, а не на одной странице? - PullRequest
0 голосов
/ 09 ноября 2011

У меня есть сайт Wordpress с страницей портфолио .Для каждой части портфолио я хочу кнопку FB Like.Достаточно просто.Вот немного подлый:

Обычно в симуляционной обстановке, например, в блоге, вы задаете URL-адрес «Мне нравится», чтобы он указывал на страницу отдельной статьи в сообщении, к которому он прикреплен.Но для этого портфолио нет ни одной страницы, портфолио - только одна страница.URL должен указывать на идентификатор конкретного сообщения, например, http://example.com/our-work/#post-244,, а не (не существует) http://example.com/our-work/new-client-print.html

Это заняло у меня 20 минут, чтобы настроить кнопку Tweet на странице,но я уже 3-й день пытаюсь начать работу с Facebook Like.

Лучшая идея, которая мне пришла в голову, - это настроить страницу статьи Portfolio, а затем настроить .htaccess для полного перенаправления.стр.Но переменные будут случайными, поэтому я даже не пытаюсь это сделать, и отображаемый в Facebook URL будет неверным.

Как обычно, крайний срок - сегодня, поэтому любая помощь будет принята с благодарностью.

Обновление:

Я вроде как все заработало, но в итоге не использовал его вообще.Я объясню в конце.

Я скопировал код в шаблоне статьи, который я использую для добавления id="post-##".

В моем случае это в цикле.Так что мой fb: like выглядел так:

<fb:like href="http://example.com/our-work/#post-<?php the_ID(); ?>" layout="box_count" show_faces="false" width="70" colorscheme="light"></fb:like>

Мне также нужно было получить мета-код og:url, указывающий на все эти дополнительные URL-адреса для работы Like'ing.Для этого я использовал

<?php 
    global $post;
    $tmp_post = $post;
    $args = array('post_type' => 'work'); 
    $custom_posts = get_posts($args);
    foreach($custom_posts as $post) : setup_postdata($post);
?>
<meta property="og:url" content="http://example.com/our-work/#post-<?php the_ID(); ?>"/>
<?php
    endforeach;
    $post = $tmp_post;
?>

Facebook Linter на самом деле не нравятся множественные og: url, но он все еще работает.

Но , сделав этот URLбудет указывать правильно, но мне все еще не хватало получения правильного изображения, заголовка и описания.Возможно, я мог бы использовать тот же цикл, но не уверен, насколько хорошо это сработало бы для проверки.И я бы закончил с одним огромным списком мета ...

Надеюсь, это может кому-нибудь помочь позже.

1 Ответ

1 голос
/ 09 ноября 2011

Вы должны добавить каждый #hash как отдельное мета og:url свойство

Единственным недостатком этого решения является то, что og:title и og:description одинаковы для всех разделов на странице и не могут быть переключены без каких-либо дополнительных магических действий в сочетании со стороной сервера.обнаружение, которое может обнаружить, что страница была подхвачена Facebook или другой службой социального обмена с указанным #hash -tag

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