Nyligen frågade en av våra användare oss om det fanns något sätt för dem att lägga till ett dragspel med Vanliga frågor på sin site i WordPress. Det finns många tillägg tillgängliga som allow you to add a frequently asked questions or Vanliga frågor or FAQs section in WordPress. I den här artikeln visar vi dig hur du addar ett jQuery dragspel för Vanliga frågor på din WordPress site.
Vad är ett dragspel?
Inom webbdesign är dragspel en term som används för ett designmönster för användargränssnitt som har tabbar eller block med content som minimeras eller förstoras när användaren klickar på dem. Varje tabs har content under sig som förstoras när användaren klickar på menu-item. I enkla termer gillar det en meny som förstoras när du klickar på den. Vi har använt en liknande effekt på vår gratis WordPress blogg setup page. Under finns en screenshot av ett exempel på dragspel.
Video Tutorial
Om du inte gillar videoklippet eller behöver fler instruktioner, fortsätt då att läsa.
Lägga till ett jQuery-dragspel för Vanliga frågor
Innan du kan add to ett jQuery Vanliga frågor-dragspel måste du se till att du har en section med Vanliga frågor. Börja med att lägga till en sektion med Vanliga frågor genom att följa vår tutorial om hur du lägger till en sektion med Vanliga frågor i WordPress.
Låt oss nu gå vidare med att lägga till jQuery Vanliga frågor-dragspelet. WordPress levereras med jQuery-biblioteket men det har ej jquery themes. Vi kommer att hämta det från Google CDN och invänta [granskning] / köa dessa skript i WordPress. Vi kommer också att skapa en shortcode som visar våra vanliga frågor. Viktigast av allt kommer vi att göra allt detta genom att skapa ett WordPress plugin.
Skapa en folder på your desktop och namnge den my-accordion. Öppna Notepad eller någon annan textredigerare som du själv väljer. Skapa en fil som heter my-accordion.php
och klistra in den här koden i den:
<?php /** Plugin Name: WPBeginner's FAQ Accordion Description: A jQuery powered Accordion for FAQs based on a tutorial by WPBeginner Version: 1.0 Author: WPBeginner Author URI: https://www.wpbeginner.com License: GPL2 */ function accordion_shortcode() { // Registering the scripts and style wp_register_style('wpb-jquery-ui-style', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/themes/humanity/jquery-ui.css', false, null); wp_enqueue_style('wpb-jquery-ui-style'); wp_register_script('wpb-custom-js', plugins_url('/accordion.js', __FILE__ ), array('jquery-ui-accordion'), '', true); wp_enqueue_script('wpb-custom-js'); // Getting FAQs from WordPress FAQ Manager plugin's custom post type questions $posts = get_posts(array( 'posts_per_page' => 10, 'orderby' => 'menu_order', 'order' => 'ASC', 'post_type' => 'question', )); // Generating Output $faq .= '<div id="accordion">'; //Open the container foreach ( $posts as $post ) { // Generate the markup for each Question $faq .= sprintf(('<h3><a href="">%1$s</a></h3><div>%2$s</div>'), $post->post_title, wpautop($post->post_content) ); } $faq .= '</div>'; //Close the container return $faq; //Return the HTML. } add_shortcode('faq_accordion', 'accordion_shortcode');
När du har saved your ändringar i den filen, öppna en new blank fil. Save it as accordion.js
. Klistra sedan in den här koden i den och save filen:
jQuery(document).ready(function() { jQuery("#accordion").accordion(); })();
Nu har vi vårt plugin redo att uploada. Öppna din FTP-klient och upload my-accordion folder till /wp-contnt/plugins/ directory på din WordPress website. Därefter måste du aktivera pluginet genom att gå till din plugins vy i WordPress admin area.
Lägga till en sida med Vanliga frågor med Accordion
Om du vill visa Vanliga frågor i ett dragspelsformat måste du skapa en new page. Gå till Pages ” Add New. Ge din page en rubrik, t.ex. Vanliga frågor och i page edit area enter denna shortcode:
[faq_accordion]
Save and Publicera your page, and preview it. You will see your Vanliga frågor displayed in a nice accordion menu.
Changed Style and Colors of Your Accordion
För färger och styling använder denna Vanliga frågor Accordion jQuery UI Themes hosted på Google. Det är i grunden ett stilark, och om du föredrar kan du ladda ner och lägga det på din egen webbplats. jQuery webbplats har en jQuery UI teman sektion med några färdiga att använda teman. Som du kan se att vi har använt humanity theme i vårt plugin. Du kan ersätta det med något av de tillgängliga teman som smoothness, cupertino, etc. Du kan också skapa eller ändra dessa themes på Themeroller.
Vi hoppas att den här artikeln hjälpte dig att add to ett jQuery dragspel för Vanliga frågor på din WordPress website. För återkoppling och frågor vänligen lämna en comment under.
Syed Balkhi
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Zac Smith
Hello, I installed the Quick and Easy FAQ plugin, and then followed this video. I do not get an accordion FAQ, rather the only thing that shows up is the first FAQ question and answer … and the question is hyperlinked.
Daniel
Great tutorial!
My debugger complained about undefined variable $faq.
Defined variable at begin of function accordion_shortcode() with $faq = ”;
As well my version of FAQ plugin enters the value ’faq’ instead of ’query’ into the field post_type of the table postes.
Adjusted line 23:
’post_type’ => ’faq’,
Johan Johnsson
It’s silly that you’ll have us install a plugin for a FAQ page and follow your previous tutorial on how to make that FAQ page, and then copy (essentially download) the plugin you made for this tutorial. So we’re essentially downloading 2 already finished plugins.
I don’t think people come here to download 2 plugins, but rather to LEARN how to make a custom accordion menu of their own. I don’t see why I should follow this ”how to guide” when I can just download some other WP plugin that does the same job, if not better.
And the fact that this plugin relies on the FAQ plugin seems quite unnecessary. Why didn’t you make a stand-alone plugin and make it dynamic? So you can use it for any content on any page.
WPBeginner Support
Hi Johan,
Most our users are beginners who would find it difficult to copy paste code. This is why we made it into a plugin so that users can download and install it. If you would like to use the code method, then the code is here for you to study and use it in your theme or a site-specific plugin. Let’s us know if you need any help with that.
Administratör
Kim
How do I make it so that when I click the title it collapses – I see that it collapses when you click another part of the accordian but I am looking for the function to collapse when each title is clicked.
christina
thanks for the tutorial. I am very much new to coding and webpage design. I have followed instructions to pasting the codes to my notepad on my mac. Is there a different way to save the file other than in notepad as a php or js file into the folder? Also, could you please let me know step by step how to open FTP client (what is it btw?) and how to upload my-accordian folder to /wp-contnt/plugins/directory to WP website. Thanks so much.
christina
when I save the textedit file it saves as my-accordion.php.rtf. Is that correct?
WPBeginner Support
No. You need to save it as my-accordion.php Windows programs sometimes add this extension to your text file. Try using Save File As option.
Administratör
WPBeginner Support
On Mac you have a program called TextEdit. For FTP see our guide on how to use FTP to upload WordPress files.
Administratör
Nurul Amin
I have activated this plugins successfully, but it is not working. Displaying nothing in my FAQs Page.
WPBeginner Staff
The code screenshot you shared, does not look like the code we have shared above. However, the code in screenshot has HTML tags that shouldn’t be there. It should be like this:
’posts_per_page’ => ’10’,
Stefan 13
This is pretty weird. Your comments had me baffled, as I was clearly seeing the code right there on my screen. I then realised that all those currency converter tags came from another one of my Firefox plugins, which dynamically adds a context menu to numbers in web pages – hence the source looked different.
Thanks for your help!
Stefan 13
When I try to activate the plugin in WP 4.1, I get this error message:
Plugin could not be activated because it triggered a fatal error.
Parse error: syntax error, unexpected ’<' in /home2/laurepc3/public_html/shala/wp-content/plugins/my-accordion/my-accordion.php on line 20
Any ideas that may help with this?
WPBeginner Staff
The code you pasted has an unexpected character 10,
Make sure posts_per_page is enclosed in single quotes. Make sure there is an equals sign before greater than sign and make sure there is a comma at the end of the line.
Guest
I don’t have that on line 20. What I can see on line 20 in the post above and in my file is this:
’posts_per_page’ => 10,
Screen shot attached as well.
So does the post above display incorrect file content?
Stefan 13
The code in my file does not look like what you posted for line 20, but it’s the same code as is above:
’posts_per_page’ => 10,
’orderby’ => ’menu_order’,
Does that mean that the code in the article is out-of-date?
Thanks for clarifying!
Screen shot attached:
Caroline
Thank you for this tutorial! It’s really help with my problem!
I want to put topics like this: Topic ”Events”: a accordion box and ”Past Events”: another accordion box with topic Past Events. I tried the shortcode [faq_accordion + topic=”events”] but nothing happened. What can I do? Thank you very much!!!
raouf
hello .. thank you for this tutorial, it’s helpful . but i just make a simple modification to make a accordion for a specific category . it worke’s but it show me the classic editor of my post not the visual editor. can you help me
Mahesh Waghmare
Thanks…
Rana
Hi
Is there a way I can just dispay the ”category title i.e FAQ Topic ” and the topic listed under each.
I dont want the whole content,just the category title and clicking on it would show the topic title )
Raba
Chris
What’s the best way of getting the CSS to work? I have a child theme with my custom css code. Do I need to do anything in that file since I don’t see any of the Google css.
WPBeginner Support
Chris the Google CSS is queued and only fetched when your FAQ accordion is displayed. Open the page containing your FAQ Accordion and right click then select View Source. On the view source page look for
http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/themes/humanity/jquery-ui.css
if it is there then this means you have successfully loaded CSS theme.Administratör
Chris S.
I am able to get your plugin to work properly with the FAQ Manager but had some questions. It will only display 10 of the FAQs (which I presume is a default #). If I use the built-in shortcode that comes with the FAQ Manager plugin I am able to get the full list to display
To display ALL: place [faq limit=”-1″] on a post / page
Do you have any suggestions on how to handle this?
Also, the FAQ manager allows for creating different lists by topic. Would there be a simple way to modify your plugin to make use of this?
List all from a single FAQ topic category: place [faq faq_topic=”topic-slug”] on a post / page
Great work otherwise!
WPBeginner Support
To display FAQs with topics FAQ Manager uses these parameters in the shortcode:
[faq faq_topic="topic-slug"]
[faq limit=”-1″] is quite self explanatory. It will display all FAQ.
However, if you want to display more FAQ’s in the accordion you need to modify the query parameter in WPBeginner’s FAQ Accordion plugin, like this:
1-click Use in WordPress
Administratör
Chris S.
Great- thanks for your help with this!
Garrett
This isn’t working for me quite as intended. Plugin activates successfully and the shortcode is being processed, but here’s what the output looks like…
I opted to use the FAQ manager plugin with your code in order to fix the hideous styling the plugin spits out.
But when it’s all said and done, here’s what it looks like. Any tips?
http://screencast.com/t/K2VfuBOptcn
Many thanks in advance!!
~Garrett
Atlanta, GA
Garrett
It seems the list is not inheriting any styling info from jquery-ui.css, though I did verify that a link file to jquery-ui.css IS present on the page.
Line where jquery-ui.css is included:
Exploring CSS rules:
How can this be?
Thank you!
~Garrett
WPBeginner Support
Try switching to a default WordPress theme to see if it works then.
Administratör
Richard Morrison
This has broken following the latest WordPress Update. I can no longer get the accordion to display. Shortcode now only displays the text from FAQ manager.
Piet
line 20 of your my-accordion.php file reads: ’numberposts’
that function has been deprecated since…. a very long time.
as you guys are in the business of giving tutorials to beginners, can you at least get the functions right?
obviously this should be ’posts_per_page’
Editorial Staff
Updated the article.
Administratör
Mary-Anne
I would appreciate some help with this. I am attempting to install on a 3.5.2 on a network site. Network Admin has the Plugin listed and Network Activated.
However it is not listed in the sub-sites.
Has this been tested with Network sites yet? It looks like just what is needed. Thanks for all your efforts with WPBEGINNER.
Thanks.
Editorial Staff
This sounds like a support question that needs to be posted on the plugin forum.
Administratör
birge
Hi,
I made my-accordion.php and accordion.js, uploaded them and everything, but still I can’t see the plugin in the list of plugins. What went wrong?
Thanks,
birge
Editorial Staff
Are you sure that the plugin file location is something like this: /wp-content/plugins/accordion/my-accordion.php
Administratör
birge
Exactly.
alin
I do just what you said but I can’t activate the plugin from plugins dashboard because I can’t se it
curdaneta
You forgot include the script file ”accordion.js” …
Editorial Staff
We shared the accordion.js code in there. It is also being included using enqueue script.
Administratör
curdaneta
Sorry, but I find the link to the file
Editorial Staff
There is no link to the file. We have shared the code that you need to paste in a new file that you will create called accordion.js
curdaneta
Sorry, my bad
I didn’t read carefully. Now everything works as expected
curdaneta
curdaneta
Hello
It doesn’t work for me using the shortcode in several paragraph
Regards
curdaneta
Gaelyn
Thanks. I can see where this will come in very handy.
Drake
Thank you for the article. It would be nice have a similar one that explain how to introduce jQuery tabs to pages/posts.