facebook share widget issue with dynamic pages
3 posts by 2 authors in: Forums > CMS Builder
Last Post: March 28, 2019 (RSS)
By willydoit - March 27, 2019
Hi all,
I am wanting to add a facebook like and share buttons widget to my pages. The required code provided by facebook is
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/en_GB/sdk.js#xfbml=1&version=v3.2"></script>
<div class="fb-like" data-href="https://bridlington.net" data-layout="button" data-action="like" data-size="large" data-show-faces="true" data-share="true"></div>
The above code works fine however and produces the link
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fbridlington.net%2F&display=popup&ref=plugin&src=like&kid_directed_site=0
I would like to add this code to dynamically created pages which would mean that data-href value needs to be a variable containing the page url.
I assumed that replacing the static url with
<?php echo urlencode(thisPageUrl()) ?>
would do the trick but when the share button is pressed having replaced the static url with the above code I get a 404 error and the link produced looks like this
https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fbridlington.net%2Fhttps%253A%252F%252Fbridlington.net%252Findex.php&display=popup&ref=plugin&src=like&kid_directed_site=0
It looks like the domain value is being screwed up but I cannot understand why as using the same urlencode code to create a direct link in the "tell a friend" email facility works fine. If I just use the code to display the value on a page it displays the URL as
https%3A%2F%2Fbridlington.net%2Findex.php
and is not displaying the url values of : and / which I am assuming is the issue
Does anyone know how I can generate a variable I can use that will produce the url in a way that it will display with the : and // instead of %3A and %2F to work with the facebook code.
Thanks in advance for any help provided.
By daniel - March 27, 2019
Hi Willydoit,
Those codes (%3A, %2F) are generated by the urlencode() function, so I believe you should just be able to call the thisPageUrl() function by itself to get the URL you want:
<?php echo thisPageUrl(); ?>
It is good practice to use urlencode() on any dynamic text you want to include in a URL, however, with how the Facebook script is using the value, it isn't necessary in this case.
Let me know if that does the trick!
Thanks,
Technical Lead
interactivetools.com