The protocol is different.
When you Trackbacksomeone, you usually manually enter his trackback-URL (there are automatic implementations also) in some field an the receiving site gets an XML-RPC “TrackBack ping” with your URL, blog name and some excerpt. Since you can simply sent any text and URL you like without actually backlinking or referencing the entry at all, trackback has been heavily abused by spammers to an extent that makes is practically unusable.
Pingback works a bit different. When you publish an new entry the software automatically examines all URLs in your post to see if the linked site supports the pingback-protocol. If it does an XML-RPC “Pingback ping” is sent just with the URL of your post and the URL of the linked post. The software of the linked site will then grab your post and examine if there actually is a backlink. If it isn’t it will not accept the ping. If there is it will fetch some text in the context of the link as excerpt and the page title and will record the ping.
Hi Silenz -
I’ve taken a look at your documentation and have one series of questions and a suggestion.
Questions: Our sites have fresh content throughout the day, everyday. We do this by regularly scheduling posts to hit the site at a specified point in the future - by setting the entry date in the future, of course. Does your module send out the pings when you click the submit/update button? Or does it send them out when the entry goes live? Do you take into account the status of the entry? What would happen if I create a new entry and save it with the custom status “Draft” (or even “closed”)?
We would prefer not to send out pingbacks to sites mentioned in our post until our post goes live on the site.
Suggestion: On your documentation for the “Link element”, I would suggest adding in the disable parameter there as well:
{exp:weblog:entries weblog="blog" limit="1" disable="categories|member_data|trackbacks|pagination|custom_fields"}
{exp:pingback:link_rel template="site/pingserver" entry_id="{entry_id}"}
{/exp:weblog:entries}
Hi Silenz - We do this by regularly scheduling posts to hit the site at a specified point in the future - by setting the entry date in the future, of course. Does your module send out the pings when you click the submit/update button? Or does it send them out when the entry goes live?
It is done when you hit the submit/update button, because the going-live of a future entry is not connected to any action. It is just not displayed by the exp:weblog:entries until its time has come. So when it goes live there is no actual event that could trigger something.
The only way to implement this would be to create a kind of queue which is periodically checked by some cron-like function or another trigger. This is currently not implemented. May be worth considering for a future release.
EEs take on future entries is never trackback/never ping. So in that regard it differs right now.
Do you take into account the status of the entry? What would happen if I create a new entry and save it with the custom status “Draft” (or even “closed”)?
The latest version will only send pingbacks for “open” entries.
If you update an entry later and add new URLs they will also be pinged but never more than once.
Thanks for the quick response, Silenz. That would be great if you could make a queue of pings to go out when entries “go live” on the site. Since we rely so heavily on future entries, I may have to wait for this type of feature before implementing. Keep us updated with the status of this kind of thing - or if you don’t plan on ever doing it.
Thanks! Great stuff.
I uploaded the current version (same URL) and added some general notes on sending pings to the docs.
CHANGELOG:
Inital beta release
* Outgoing pingback.pings for future entries will be enqueued until the entry date is reached. Queue checks are initiated by browsing the CP.
Wow! That was quick! This is good enough for now, but making a tag that initiates the check when the template is called would be preferred.
Thank you! Thank you!
I’ll start checking out the module and hopefully get it integrated soon.
-Doug
This is good enough for now, but making a tag that initiates the check when the template is
I considered this and decided against it for now since it’d mean one additional query per page view and I always try to keep the query count low on the frontend. It’s easy to implement though, so I may add that as an option.
I considered this and decided against it for now since it’d mean one additional query per page view and I always try to keep the query count low on the frontend.
We actually don’t put our cron tags on our live site. We have some cron templates that do all the work. We just give our regular crontab on our server the URL to the cron templates and tell it to run it every 5 minutes or so. That’s how we get around that extra query on each page. 😊
Silenz, do you foresee any issues with using this module with fairly customized URLs? For instance, to get to an single entry page on my site, I have a url structure like:
/region/city/neighborhood/section-id/weblog/category/url_title
. Also, I’m embedding my single entry pages into a master page via conditionals, which of course introduces some whitespace to the top of the page. Is the header mandatory, or will the link suffice? I’ve set everything up now, with receiving activated only, and have posted on my blog with a link but nothing has turned up. Hmm. I see that the link tag is producing the following:
<link rel="pingback" href="http://mydomain.com//site/pingserver/" />
Note the double slashes after the domain…
OK. I have to have the index.php removed in the “Name of your site’s index page” setting in General Configuration; this is for some pagination issues I was having because of my URL rewrites. That’s what’s missing in the exp:pingback:link_rel tag… what can I do?
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.