I have a shortcode I want to put on the sidebar which appear only on the blog page and the single post page.
so I created a field for this shortcode using Advanced custom fields plugin.
when I went to the blog page, I have not found the field or any place to add the shortcode to the sidebar on the blog and blog single.
what should I do, please? and many thanks in advance
I have a shortcode I want to put on the sidebar which appear only on the blog page and the single post page.
so I created a field for this shortcode using Advanced custom fields plugin.
when I went to the blog page, I have not found the field or any place to add the shortcode to the sidebar on the blog and blog single.
what should I do, please? and many thanks in advance
Share Improve this question asked Sep 20, 2020 at 18:11 socialsocial 713 silver badges9 bronze badges1 Answer
Reset to default 1I doubt most of the Wordpress themes have the in-built functionality you're needing.
You will have to check out your theme's single.php
file and find out if it's including a sidebar template (it should), check that template and make sure it has the necessary action/hook to programmatically insert custom elements into your blog and blog posts sidebar.
Several themes actually have both before_ and after_ sidebar actions, but i can't guarantee yours has it (if not, you'll probably have to create a child theme or a custom plugin to begin with).
After you've managed to determine the correct action to be used, you'll have to add some code (into functions.php - probably a child theme's - or a custom plugin) to output your custom field's value.
In example, if your theme provides an action called my_theme_before_sidebar_items
, you'll see something like this:
do_action( 'my_theme_before_sidebar_items' );
And you'll be able to use the above action this way:
add_action( 'my_theme_before_sidebar_items', 'my_custom_function' );
function my_custom_function() {
// This will handle blog posts' sidebar. You might need a different approach to handle your blog's sidebar
global $post;
echo do_shortcode( get_field( 'my_custom_field', $post->ID ) );
}
Of course, the above my_custom_field
is the example reference name for your ACF field.