WordPress.org

Ready to get started?Download WordPress

Forums

Associate custom fields together (4 posts)

  1. sccr410
    Member
    Posted 3 years ago #

    I want to find a way to associate 2 custom fields. For example: We have setup a Custom Post Type for products. Each product can have X number of videos associated with it. For each video, we need the URL (on YouTube) and a description. So really we need someway to add Custom Fields where we can enter two items: URL / Description.

    Is something like this possible?

  2. stvwlf
    Member
    Posted 3 years ago #

    Yes, use a character as a delimiter and parse the custom field into an array using PHP

    for example
    youtube.com?V=2372372983|Great music video

    I've placed a pipe character | between the two parts
    The trick is to use a separator that will NEVER appear in the actual URL or description.

    In searching turns out I answered this last year - you are interested in the "explode" part of the code you will see in this article

    http://wordpress.org/support/topic/custom-field-multiple-values?replies=9

    The line is $temp = explode("&", "$product");

    If you use a pipe as the separator your code would be
    $temp = explode("|", "$product");
    rather than an ampersand

    You have to look at the full code in that post to see how to use this.

  3. sccr410
    Member
    Posted 3 years ago #

    Explaining separators to clients is not what I want to do unfortunately - no plugins or other options?

  4. stvwlf
    Member
    Posted 3 years ago #

    Hi

    I just realized I answered your question too quickly not taking everything you said into consideration. I'm sorry.

    Linking a URL to a Description is easy. It gets trickier when you need multiple occurrences of that pair per post and you don't know how many there are.

    The way to link a URL to a description is have two custom fields, URL and Description, and have your code call for them. That is easy.

    Whether the URL/Descrip is in one custom field or two is not the real issue. The real issue, since your client is entering these is, even if you could have two data fields in one custom field, what would you name the custom fields? You can only have one custom field with the same name on a single post.

    You'd have to name them something like
    URL1
    URL2
    URL3
    URL4
    and a matching
    Descrip1
    Descrip2
    Descrip3
    Descrip4

    Since these are being manually entered the likelihood of user error in the naming process is high. Your code can process all the custom fields associated with a post and match up the URL & Descrip, but you have to match them by the sequence # also.

    It is possible there is a plugin to handle this. But I don't really see how that would be written. What you are looking at really is a custom data entry screen that writes the custom fields into the database assigning its own sequence # so no user can screw it up by entering custom field names manually incorrectly. You can't count on that being done accurately.

    If there are hundreds or thousands of products it could even make sense to use a custom database table. If its a smaller project you could do it in the same tables the custom fields use. You would be using a mechanism other than the custom field screen to get the data in and out.

    The issue you have is its not a simple process to do what you are asking for. You could also do it by having a custom post type for the URL/Descrip data and link that to the original product post using the product post's ID #. that would require up to 9 posts per product. (That method mirrors the way things actually get stored in the database.)

Topic Closed

This topic has been closed to new replies.

About this Topic