• Resolved Jerrad

    (@jjgleim)


    Hey Eliot!

    I am needing to find out if something changed on creating a link to a Post Object since the shortcode shakeup a while back with WordPress.

    I have my code setup like this (see below) and I can’t get it to create a hyperlink related to the post object selected in my custom post type. (Using ACF to setup the fields BTW). The post object links used to work and just recently was notified by some of my website patrons that the link just takes them back to the same post/page they were on originally.

    [related field_name]
      <a href="[field url]">[field title]</a>
    [/related]

    If I just put [related field_name][field url][/related] it returns the URL to the post object as text. I just can’t get it to work as a link in HTML.

    Thanks,

    Jerrad

    https://wordpress.org/plugins/custom-content-shortcode/

Viewing 14 replies - 1 through 14 (of 14 total)
  • Plugin Author Eliot Akira

    (@miyarakira)

    Hi Jerrad,

    Yes, this seems related to the issue of using shortcodes in HTML attributes, whose behavior changed since WP 4.2.3. If the code is in the post content, it should work the same as before – the plugin will process it before it gets to do_shortcode. However, if you’re using do_shortcode directly, or loading the post content in another way that bypasses the_content filter, then it could be interpreted differently. I think what is happening is that the shortcode in HTML attribute gets run first, then the wrapping shortcode.

    The simplest solution would be to avoid the use of shortcodes in HTML attributes by using [field title-link] or the new [link] shortcode. Otherwise, if you’re using do_shortcode, you can replace it with do_ccs_shortcode.

    Thread Starter Jerrad

    (@jjgleim)

    Eliot,

    I am using this shortcode in a text box section from Pagelines DMS2 theme. I might have to modify the text box section or create a new section and add it as an option in my child theme to render shortcodes using do_ccs_shortcode. But before I do that I’ll try the other shortcodes.

    I’ll report back something in a couple days.

    Thanks,

    Jerrad

    Thread Starter Jerrad

    (@jjgleim)

    [field title-link] worked like a charm. Unfortunately I lost the ability to use the link as a button.

    Is there a way to add a class to the [field title-link] shortcode? I would like to use Bootstrap to make the link a button and also use link_text to give the button a generic label. I am wanting to use this in a page template that will have only one button appearing on the page along with other information populated from my custom fields (ACF).

    [field title-link class=btn,btn-primary link_text='View Resource']

    Plugin Author Eliot Akira

    (@miyarakira)

    Hi,

    I looked into this, and I think it’s already possible – the above code should work, except for: class='btn btn-primary'

    This is also possible with the [link] shortcode, documented under Main -> Field -> Link to field value. By default, it links to the current post in the loop:

    [link class='btn btn-primary']
      View Resource
    [/link]
    Thread Starter Jerrad

    (@jjgleim)

    Brilliant – it works!

    Thanks so much!

    Jerrad

    But what if the URL we need is in a custom field? I need to be able to say:

    @[field user_twitter]
    [field user_homepage]

    Is there no way to make a link from of a field?

    Something about this last plugin update seems to have broken the ability to do use a custom field shortcode within a href tag (I’m re-adding the code that I had posted before, this time with code tags)

    <a href="[field user_homepage]">[field user_homepage]</a>

    This now produces <a href="">www.homepage.com</a>

    This was definitely working last week when – I set this code up on a page I had that was [cache]'d for 7 days and it was still working last night. I went to add the same code today to a different page and it didn’t work work. At first I thought maybe I didn’t check to see that the link was working on the old page, but I checked and the links were there. I re-saved that old post today and now they’re not working either. WordPress has been on latest version the whole time – the only thing that’s changed that I can think of has been the update to this plugin a few days ago.

    I was reading more about the changes to WordPress shortcode API in 4.2.3, but I dont think this is related because it was working a few days ago. Could you add something to the [link] shortcode that will linkify a field that is supplied? That way something like:

    where field ‘user_homepage’ = http://www.homepage.com:
    [link field=user_homepage protocol=http][field user_homepage][/link] would produce <a href="http://www.homepage.com">www.homepage.com</a>

    or

    where field ‘user_telnet’ = telnetaddress.com
    [link field=user_homepage protocol=telnet][field user_telnet][/link] would produce <a href="telnet://telnetaddress.com">telnetaddress.com</a>

    this could then be used for email, https, gopher, etc.. πŸ™‚

    Plugin Author Eliot Akira

    (@miyarakira)

    Hi @nola.geek, thank you for the feedback. In the newest plugin update, your code above should work as described. Except for gopher, probably. πŸ™‚

    That works great. This plugin has literally replace three others I was using – love it. I have one more question – is there a way to join two fields into one variable. I have a specific issue in that when I use the telnet protocol, I need to include another field for the port. My old code was this:

    < a href="telnet://[field TelnetAddress][if $bbsPort]:[$bbsPort][/if]"</a>[field TelnetAddress]</a>

    Which would add :2323 to the URL if they had a custom port in the database.

    Can pass be used for that?

    Plugin Author Eliot Akira

    (@miyarakira)

    Yes, I think pass would work:

    [pass field=$bbsPort]
    [link field=TelnetAddress after=:{$BBSPORT}][field TelnetAddress][/link]
    [/pass]

    Kind of an awkward syntax..

    In the last update, I think I solved your earlier issue with [cache] and using a field value in an HTML attribute. So you can see if your old code works by building the link directly.

    You are THE MAN. Everything is back to working! πŸ™‚ This is honestly the best plugin on wordpress. πŸ™‚

    Plugin Author Eliot Akira

    (@miyarakira)

    Great, thanks for letting me know that it works. Please feel free to start another topic if you find anything else. I’m kind of curious to hear how you’re using telnet and port numbers stored in fields, it sounds like an interesting setup.

    I’m working on a redesign for telnet BBS list. πŸ™‚

Viewing 14 replies - 1 through 14 (of 14 total)
  • The topic ‘How to Hyperlink a Post Object?’ is closed to new replies.