Tumblr template tags to get the last post data? - tumblr

I'm trying to build a theme where all the facebook og:* tags point to the last post that is being rendered, with a fallback to some information like the blog's title or some such. Does anyone know what the templating tags for this are?

This could be achieved using the posts loop with targeting the first block; try a syntax like:
<head>
<meta property="go:title" content="{Title}" />
{block:Description}
<meta name="description" content="{MetaDescription}" />
{/block:Description}
{block:Posts}
{block:Post1}
{block:Text} {/block:Text}
{block:Photo} {/block:Photo}
{block:Panorama} {/block:Panorama}
{block:Photoset} {/block:Photoset}
{block:Quote} {/block:Quote}
{block:Link} {/block:Link}
{block:Chat} {/block:Chat}
{block:Audio} {/block:Audio}
{block:Video} {/block:Video}
{block:Answer} {/block:Answer}
{block:Post1}
{/block:Posts}
</head>
Clarification
{block:Posts} loops through the blog posts, however, it renders only the first post (which is latest per Tumblr posts order) using {block:Post1}. Then, each post has a different meta tag requirement.

Related

Publisher logo metadata with no img

For the article rich result, Google gives that Microdata example:
<div itemprop="publisher" itemscope itemtype="https://www.schema.org/Organization">
<div itemprop="logo" itemscope itemtype="https://www.schema.org/ImageObject">
<img src="https://www.google.com/logo.jpg"/>
<meta itemprop="url" content="https://www.google.com/logo.jpg">
<meta itemprop="width" content="600">
<meta itemprop="height" content="60">
</div>
For design reasons, I do not want to show the logo (or at least not in that place).
If I give no information about any img, the Google Testing Tool gives an error. But if I delete the img tag but keep the meta information about the img, the testing tool is ok.
Can I omit the img tag, but keep the rest? I mean, I would give Google the metadata information of the image but I would not show the logo of the publisher to the user/public of the web. Like that:
<div itemprop="publisher" itemscope itemtype="https://www.schema.org/Organization">
<div itemprop="logo" itemscope itemtype="https://www.schema.org/ImageObject">
<meta itemprop="url" content="https://www.google.com/logo.jpg">
<meta itemprop="width" content="600">
<meta itemprop="height" content="60">
</div>
For the article rich result, Google uses the logo only for AMP pages. The logo guidelines don’t say anything about whether the logo has to be displayed on the page.
Providing the URL of the logo (without using the img element) is perfectly fine from the perspectives of Schema.org and Microdata.
But note that Google’s example is invalid HTML+Microdata. If the value is a URL, you have to use link instead of meta:
<div itemprop="logo" itemscope itemtype="https://www.schema.org/ImageObject">
<link itemprop="url" href="/logo.jpg">
<meta itemprop="width" content="600">
<meta itemprop="height" content="60">
</div>

How to add custom image to each of the multiple facebook share buttons? I have multiple share buttons in single page

I have tried og:image meta tag as given here https://developers.facebook.com/docs/plugins/like-button. This seem to support one image for one page, and facebook seem to be assuming that you need one share button in one html page.
Also, a similar looking question - Multiple Facebook, Twitter share buttons in one page with custom image and title does not answer custom image to each of the multiple share buttons in page. Here's how I'm adding og:image for each insertion. Below snippet is in the loop.
Thanks a ton for the help in advance.
<div class="row">
<div class="col-sm-12">
<% #map_url = ('http://maps.google.com/?q='.to_s + #user.address.to_s) %>
<small><%= link_to #user.address, #map_url, target: "_blank", style: 'color:#0645AD;' %>
</small>
<% #facebook_comment_url = ('https://wobbleapp.in/users/'.to_s + #user.id.to_s) %>
<meta property="fb:app_id" content="XXXXXXXXXX" />
<meta property="og:url" content= <% #facebook_comment_url%> />
<meta property="og:image" content="https://d2l5nbch64gdxx.cloudfront.net/uploads/user/image/47287/upload_image.jpeg" />
<meta property="og:description" content="Potholes in your locality!" />
<div class="fb-like pt-2"
data-href= <%= #facebook_comment_url %>
data-layout="standard" data-action="like" data-size="small" data-show-faces="true" data-share="true"></div>
<div
class="fb-comments"
data-href= <%= #facebook_comment_url %> ></div>
</div>
</div>
</div>
You need to have one webpage (eg. http://example.com/) to have the FB share button script and html tags, as per Multiple Facebook, Twitter share buttons in one page with custom image and title
Then you need each image webpage (eg. http://example.com/image/1) to have the Open Graph meta tags, as per https://developers.facebook.com/docs/sharing/opengraph/using-objects#objectapi
You do not put the <meta property="..."> tags on the same page as the FB share button script and tags. This is what WizKid and CBroe were trying to explain in the comments.

Hidden Breadcrumbs Rich Snippet

I want to implement breadcrumbs for my site but I do not want to create any visible tags for that on my page. I thought of using meta tags but as they do not have href property, they can’t contain the itemprop="url" property. Following is the code I am using:
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<meta href="http://www.example.com/dresses" itemprop="url">
<meta itemprop="title" content="Dresses">
</div>
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<meta href="http://www.example.com/dresses/real" itemprop="url">
<meta itemprop="title" content="Real Dresses">
</div>
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<meta href="http://www.example.com/clothes/dresses/real/green" itemprop="url">
<meta itemprop="title" content="Real Green Dresses">
</div>
Is there any workaround method to achieve this?
HTML5 defines that the meta element
[…] represents various kinds of metadata that cannot be expressed using the title, base, link, style, and script elements.
The link element "allows authors to link their document to other resources".
So you have to use link instead of meta if the value is a URI. (Microdata explicitly requires this, too.)
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<link itemprop="url" href="http://www.example.com/dresses">
<meta itemprop="title" content="Dresses">
</div>
As per Google Terms of Service, every markup up have to be visible to each user.
Don't include any hidden markup because Google will penalize you.

Google Plus share not picking meta tags from head

I am trying to implement Google Plus share on my page but instead of picking title from meta tags it is picking page title from url in share dialog title. Do I need to include anything else?
<meta property="og:title" content="Title"/>
<meta property="og:description" content="Description"/>
<a href="https://plus.google.com/share?url={google.com}"/>Link</a>
According to the Google Developer Site, the example code snippet for Google Plus shared links is:
<body itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Shiny Trinket</h1>
<img itemprop="image" src="{image-url}" />
<p itemprop="description">Shiny trinkets are shiny.</p>
</body>

Addthis: Changing Description, Title, and Url being sent

I am building a forum in PHP and I want users to be able to share the title and description of each post to facebook, twitter, ...etc using the Addthis social plugin. Here is the code Addthis has given me:
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style "
addthis:url="www.example.com"
addthis:title="Example Title"
addthis:description="Example Description">
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_preferred_3"></a>
<a class="addthis_button_preferred_4"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<script type="text/javascript" src="http://s6.addthis.com/js/154/addthis_widget.js#pubid=rd-39e8r89e9er8er989"></script>
<!-- AddThis Button END -->
I was able to change the url to another I have specified, but changing the title and description has no effect. In fact, they do not even show up when I click the share button and post it to my facebook wall. What is the proper way to get this to work?
AddThis doesn't officially support all these parameters as far as I can tell (I can't find them all in once place in their documentation), so ideally you should just use OpenGraph tags on the page you are on. But in any case...
You need to specify it on the custom buttons themselves, not on the toolbox. You can even specify the image. If your buttons have to come from AddThis instead of specifying them yourself, I'm not sure.
<div class="addthis_sharing_toolbox">
<a class="addthis_button_facebook"
addthis:url="http://google.com/"
addthis:title="Here's a title"
addthis:media="http://images.google.com/example.png"
addthis:description="Here's a cool description">
<i class="ico ico-facebook"></i>
</a>
<a class="addthis_button_twitter"
addthis:url="http://google.com/"
addthis:title="Here's a title"
addthis:media="http://images.google.com/example.png"
addthis:description="Here's a cool description">
<i class="ico ico-twitter"></i>
</a>
<a class="addthis_button_linkedin"
addthis:url="http://google.com/"
addthis:title="Here's a title"
addthis:media="http://images.google.com/example.png"
addthis:description="Here's a cool description">
<i class="ico ico-facebook"></i>
</a>
</div>
AddThis's documentation sucks so I just happened to run into the right things and figure this out. Enjoy!
AddThis specific recommend that you use meta tags from the Open Graph Protocol to specify what to show
We strongly recommend the page-tagging approach over passing your widget parameters to our APIs
So in your case you should have the code lie it's original:
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style">
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_preferred_3"></a>
<a class="addthis_button_preferred_4"></a>
<a class="addthis_button_compact"></a>
<a class="addthis_counter addthis_bubble_style"></a>
</div>
<script type="text/javascript" src="http://s6.addthis.com/js/154/addthis_widget.js#pubid=rd-39e8r89e9er8er989"></script>
<!-- AddThis Button END -->
and change your header to include the addThis meta tags, in your example, like:
<meta property="og:url" content="http://www.example.com" />
<meta property="og:title" content="Example Title" />
<meta property="og:description" content="Example Title Description" />
<meta property="og:image" content="http://www.example.com/logo.gif" />
This avoids any problem you can encounter in the Client API.
I went around and around before finding this on the AddThis website:
Setting the URL & Title to Share
...for our newest tools, use the data-url and data-title parameters...
I am using their latest code (addthis_sharing_toolbox instead of addthis_toolbox) and all I could find were people using addthis:url="" which was not working.
to avoid any error due to image,try to set image width to minimuim
<meta property="og:image" content="#TempData["image"]" />
<meta property="og:title" content="#TempData["title"]" />
<meta property="og:url" content="#TempData["url"]" />
<meta property="og:image:width" content="400" />
<meta property="og:image:height" content="400" />
<meta property="og:description" content="#TempData["description"]" />
<meta name="twitter:title" content="#TempData["title"]">
<meta name="twitter:description" content="#TempData["description"]">
<meta name="twitter:image" content="#TempData["image"]">
<meta name="twitter:card" content="summary_large_image">
<meta charset="utf-8" />
added in page where inline toolbox is needed
<div class="addthis_inline_share_toolbox"></div>
added widget.js in layout/master page before closing body tag
<script type="text/javascript" src="https://s7.addthis.com/js/300/addthis_widget.js#pubid=yourpubID"></script>
</body>
***** if any error below checking on information will be helpful ****
check if any redirect happen , then meta tag information should be presented on that page as well,
e.g if "Facebook Sharing Debugger" redirect page to any login page then meta tag required on login page as well
check how your source code look like (https://developers.facebook.com/tools/debug/ ---> Scraped URL)
check on below url, if any error in meta tag
https://developers.facebook.com/tools/debug/ (click on scrape again to see updated changes)
https://cards-dev.twitter.com/validator
https://www.linkedin.com/post-inspector/inspect/