Creating a custom field with value from other custom fields
- This topic has 10 replies, 3 voices, and was last updated 1 year, 11 months ago by
Joachim Auster.
-
AuthorPosts
-
November 7, 2021 at 9:36 PM #31792
[email protected]
ParticipantHi
Unfortunately the custom field variables in rankmath work only for textfields (text, textarea, wysiwyg). That's why I'm not able to create the seo-snippet content dynamicly from my other fields, like taxonomy etc.
So I'm looking for a solution to create a new text field, which fetches the values from other custom fields. Is there any possibility for this? (note: the custom html field does not work either in rankmath)
Thanks in Advance for your help
Regards
FrançoisNovember 8, 2021 at 12:30 PM #31796Long Nguyen
ModeratorHi,
It is possible. You can use Meta Box's action hooks like
rwmb_{$meta_box_id}_after_save_post
to update a field value from another custom field after saving the post.Please get more details on the documentation
https://docs.metabox.io/actions/#rwmb_after_save_post
https://docs.metabox.io/rwmb-set-meta/November 9, 2021 at 1:26 AM #31808[email protected]
Participantgreat, I'll try. Thanks a lot !
November 29, 2021 at 7:56 PM #32260[email protected]
ParticipantHello
I was basicly succesfull with your help. One thing is not working though:
When using this code on frontend of the post, it is working fine and showing the first name of the artist (fetched from custom taxonomy field):
<?php
$terms = get_the_terms( get_queried_object_id(), 'artists' );foreach ( $terms as $term ) {
$term_name = rwmb_meta( 'fg_meta_artist_name', ['object_type' => 'term'], $term->term_id );
$term_name_first = rwmb_meta( 'fg_meta_artist_name_first', ['object_type' => 'term'], $term->term_id );$value $term_name_first;
echo $value;
}?>
When trying to fill an empty custom field (text) with the same value, the field it not filled up:
<?php
add_action( 'rwmb_after_save_post', function( $post_id ) {< code from above (without echo) >
update_post_meta( $post_id, 'fg_taxo_object_artist_names', $value );
} );?>
Both fields are text fields.
Do you see any reason why this is not working?Thanks a lot in advance.
Regards, FrançoisNovember 30, 2021 at 2:30 PM #32279Long Nguyen
ModeratorHi,
Did you add the frontend submission shortcode on the single post? Following the code, I think you are trying to update the field value
fg_taxo_object_artist_names
of the submitted post by the term meta of the current post which shows the frontend submission form.December 2, 2021 at 4:22 AM #32340[email protected]
ParticipantHello
Yes the 1st code is implemented on the single post template (cpt) (php code block in oxygen builder).
The 2nd Code is in a code snippet and should update the field 'fg_taxo_object_artist_names' after saving a post in the editor (no frontend submission).
But the field is not updatet. I guess the field values of the taxonomies are not fetched?
(why is it working on frontend but not on backend?)Hope I was able to explain more clear.
December 2, 2021 at 9:53 AM #32347Long Nguyen
ModeratorHi,
Yes, it might not work on the backend because the function get_queried_object_id() is used to get the post ID on the frontend. You can follow this topic to get the post ID on the backend.
https://support.metabox.io/topic/get-the-post-id-as-value/December 5, 2021 at 2:24 AM #32426[email protected]
ParticipantHi,
Thanks for your hint. Unfortunately this to high for me. I can't see where to change to code to get the term id on backend.
This is my code. I don't know if you can provide the correct snippet.
If not, thanks anyway. I understand.<?php add_action( 'rwmb_after_save_post', function( $post_id ) { $terms = get_the_terms( get_queried_object_id(), 'artists' ); foreach ( $terms as $term ) { $term_name = rwmb_meta( 'fg_meta_artist_name', ['object_type' => 'term'], $term->term_id ); $term_name_first = rwmb_meta( 'fg_meta_artist_name_first', ['object_type' => 'term'], $term->term_id ); $value = $term_name_first; } update_post_meta( $post_id, 'fg_taxo_object_artist_names', $value ); } ); ?>
December 6, 2021 at 12:28 PM #32448Long Nguyen
ModeratorHi,
In the backend, you can try to use the variable
$post_id
to pass the post ID to the functionget_the_terms()
add_action( 'rwmb_after_save_post', function( $post_id ) { $terms = get_the_terms( $post_id, 'artists' ); ... } );
December 6, 2021 at 8:04 PM #32455[email protected]
ParticipantHi and thank you.
Unfortunately the code is not working. I see I need to leverage my php knowledge urgently to get things like this work.
Hava a nice day.
May 21, 2023 at 11:53 PM #41866Joachim Auster
ParticipantIt would be so nice, if I could use my metabox metafields as variables in Rankmath Snippet Editor WITHOUT any programming, just using the variable like %mb_page_metadata_kurzbeschreibung_auszug%
Any idea, when this would be possible?
I think a LOT of users would be happy about that.
-
AuthorPosts
- You must be logged in to reply to this topic.