Support Forum
Support › MB Custom Post Type › Problems with 4 field typesResolved
Hi guys,
I have created a CPT "Songs".
When I fill in 4 custom fields, Metabox displays error messages.
1. Embed Amara
For each post in this CPT, I need to insert an embed code from the Amara player (https://amara.org) to display the video.
I thought the "oEmbed" field type was the one to use but Metabox displayed the error message "Embed HTML not available. Please enter a valid URL" (see the image attached)
The code I tried to insert is like this (only the ID below changes from post to post):
<div class="amara-embed" data-url="https://www.youtube.com/watch?v=wppajEOnljI" data-hide-logo="true" data-show-transcript-default="true" data-initial-language="en" data-hide-order="true" data-hide-subtitle-me="true" data-hide-improve="true" data-hide-order="true" data-hide-download="true" data-hide-embed="true" data-team="null"></div>
2. Embed YouTube
Same as above except this time I want to insert the embed code from the YouTube player.
Same error message: "Embed HTML not available. Please enter a valid URL" (see the image attached)
The code I tried to insert is like this (only the ID changes from post to post):
<div class="amara-embed" data-url="https://www.youtube.com/watch?v=wppajEOnljI" data-hide-logo="true" data-show-transcript-default="true" data-initial-language="fr" data-hide-order="true" data-hide-subtitle-me="true" data-hide-improve="true" data-hide-order="true" data-hide-download="true" data-hide-embed="true" data-team="null"></div>
3. "Musixmatch" URL
I am looking to insert a url of the form: https://www.musixmatch.com/lyrics/[singer]/[song-name]
So I chose the "URL" type and as the only thing that changes from one post to another is the part in bold above:
- I put https://www.musixmatch.com/lyrics/ in the "Prepend text" field
- so I only put "[singer]/[song-name]" in the custom field.
But Metabox displayed an error message "Please enter a valid URL" (see the image attached).
4. "Lyrics Translate" URL
Same thing for another type of url, except that here I use "Prepend text" and "Append text".
Thanks for your help.
Laurent
Hi Laurent,
Thank you for getting in touch.
1, 2. The oEmbed field supports adding the URL and showing the media on the frontend with the list accepted site. Please read more here https://wordpress.org/support/article/embeds/
If you want to add the HTML code, I recommend using the field WYSIWYG.
3, 4. Field type URL is the HTML input type URL, you can read more here to add the valid URL https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/url
If you want to add the text [singer]/[song-name]
to the field, I recommend using the field text.
Hi Long, and first thank you for your prompt answer.
Having said that, if I use the WYSIWYG field type, I can't see "Prepend text" and "Append text" fields.
Should I use the "Before" and "After" advanced fields instead?
If I want to change some parameters of the embed code later, I'd like to do it only once to make it apply for all posts of this CPT.
So for example, for the embed code:
<div class="amara-embed" data-url="https://www.youtube.com/watch?v=wppajEOnljI" data-hide-logo="true" data-show-transcript-default="true" data-initial-language="en" data-hide-order="true" data-hide-subtitle-me="true" data-hide-improve="true" data-hide-order="true" data-hide-download="true" data-hide-embed="true" data-team="null"></div>
I'd to prepend:
<div class="amara-embed" data-url="https://www.youtube.com/watch?v=
and append:
" data-hide-logo="true" data-show-transcript-default="true" data-initial-language="en" data-hide-order="true" data-hide-subtitle-me="true" data-hide-improve="true" data-hide-order="true" data-hide-download="true" data-hide-embed="true" data-team="null"></div>
leaving me with only the video ID to submit in the WYSIWYG field.
Would it work? If not, is there another way to do it?
Also, if I use the text field and the "Prepend" and "Append" fields as mentioned above, will Meta Box recombinate the three inputs (preprend, custom text and append) so that I can use the links in the front end for a text link or a button?
Thanks a lot, Long!
Laurent
Hi Laurent,
The prepend and append text only support adding text instead of HTML tags so if you want to allow the user to add the video ID to the field text, please just use URL text as the prepend
https://www.youtube.com/watch?v=
Then on the frontend, you can concatenate the prepend URL with the field value.
<?php
$video_id = rwmb_meta( 'field_text_id' );
echo '<div class="amara-embed" data-url="https://www.youtube.com/watch?v='. $video_id .'" data-hide-logo="true" data-show-transcript-default="true" data-initial-language="en" data-hide-order="true" data-hide-subtitle-me="true" data-hide-improve="true" data-hide-order="true" data-hide-download="true" data-hide-embed="true" data-team="null"></div>';