વર્ડપ્રેસ હુક્સ, ક્રિયાઓ અને ફિલ્ટર્સ બે પ્રકારના હોય છે.
આ પાઠમાં, અમે ફિલ્ટર્સ પર ધ્યાન કેન્દ્રિત કરીશું, પરંતુ ક્રિયા હૂક પર વધુ માહિતી માટે ક્રિયા પાઠ તપાસો.
ફિલ્ટર હુક્સ શું છે?
ફિલ્ટર્સ તમને ચોક્કસ બિંદુ પર અમુક ડેટાને સંશોધિત અથવા ફિલ્ટર કરવાની મંજૂરી આપે છે, જેનો ઉપયોગ પછીથી કરવામાં આવશે.
ફિલ્ટરનો ઉપયોગ કરવા માટે, તમે તમારા કોડમાં પહેલાથી અસ્તિત્વમાં રહેલા ફિલ્ટર હૂકમાં ફંક્શન રજીસ્ટર કરો છો, જે કૉલબેક ફંક્શન તરીકે ઓળખાય છે.
આને વધુ સારી રીતે સમજાવવા માટે, ચાલો the_content નામનું ફિલ્ટર જોઈએ.
આ ફિલ્ટર wp-includes/post-template.php ફાઇલમાં વ્યાખ્યાયિત થયેલ છે, ફંક્શનની અંદર જેનો ઉપયોગ થીમ ટેમ્પલેટ્સમાં થાય છે જ્યારે પણ ટેમ્પલેટને કોઈપણ પોસ્ટ અથવા પૃષ્ઠ સામગ્રીને રેન્ડર કરવાની જરૂર હોય છે.
તે કાર્યની અંદર, આપણે આ કોડ જોઈએ છીએ
$content = apply_filters( 'the_content', $content );
અહીં apply_filters ફંક્શન ફિલ્ટર હૂકને વ્યાખ્યાયિત કરે છે, the_content ના હૂક નામ સાથે.
તમે જોશો કે $content વેરીએબલ apply_filters ની દલીલ તરીકે પસાર કરવામાં આવ્યું છે અને apply_filters નું મૂલ્ય વેરીએબલને પાછું સોંપવામાં આવ્યું છે, આ કિસ્સામાં, ફરીથી, $content ચલ.
જો આપણે આ ફંક્શનમાં થોડું ઊંચું જોઈએ તો, $content વેરીએબલને get_the_content ફંક્શનની વેલ્યુ અસાઇન કરવામાં આવે છે, જે એક વર્ડપ્રેસ કોર ફંક્શન છે જે પોસ્ટ ટેબલમાં વર્તમાન પોસ્ટ અથવા પેજ માટે post_content ફીલ્ડની વેલ્યુ પુનઃપ્રાપ્ત કરે છે.
તેથી apply_filters ફંક્શન ફિલ્ટર હૂકની નોંધણી કરે છે, કોડ એક્ઝિક્યુશનમાં આ બિંદુએ $content ની કિંમત આ હૂક પર નોંધાયેલ કોઈપણ કૉલબેક ફંક્શનમાં પસાર કરે છે અને અપડેટ કરેલ મૂલ્યને પાછું પસાર કરવાની જરૂર છે.
ફિલ્ટર હુક્સનો ઉપયોગ
તમારા કૉલબેક ફંક્શનને ફિલ્ટર પર રજીસ્ટર કરવા માટે તમે વર્ડપ્રેસ add_filter ફંક્શનનો ઉપયોગ કરો છો.
તમારે હૂકનું નામ અને તમારા કૉલબેક ફંક્શનનું નામ add_filter ફંક્શનમાં દલીલો તરીકે પાસ કરવાની જરૂર પડશે.
થીમની functions.php ફાઇલમાં આ કેવું દેખાય છે તેના પર એક નજર કરીએ.
તમારા કોડ એડિટરમાં, તમારી હાલમાં સક્રિય થીમની functions.php ફાઇલ પર નેવિગેટ કરો અને તેને ખોલો.
જો તમારી થીમમાં functions.php ફાઇલ નથી, તો તમે તમારી થીમ ડિરેક્ટરીના રૂટમાં એક બનાવી શકો છો. ફક્ત ખાતરી કરો કે તેનું નામ functions.php છે, અને ફાઇલની ટોચ પર ઓપનિંગ PHP ટેગ છે.
પછી, the_content ફિલ્ટર હૂકમાં કૉલબેક ફંક્શનને હૂક કરવા માટે તમારી functions.php ફાઇલમાં નીચેનો કોડ ઉમેરો.
add_filter( 'the_content', 'wp_learn_amend_content' );
પછી, PHP ફંક્શન સિન્ટેક્સનો ઉપયોગ કરીને કૉલબેક ફંક્શન બનાવો, જે ફિલ્ટરમાંથી સંબંધિત દલીલ સ્વીકારે છે.
function wp_learn_amend_content( $content ) {
// do some things that update $content
return $content;
}
તમારે દલીલને ફિલ્ટરમાંથી પસાર કરેલા ચલ નામની જેમ નામ આપવાની જરૂર નથી, પરંતુ જો તમે કરો તો તે તેને સરળ બનાવે છે.
નોંધ લો કે તમારે અપડેટ કરેલ ડેટા પરત કરવો પડશે. આ એટલા માટે છે કે Apply_filters કૉલમાંથી અપડેટ થઈ રહેલા મૂળ વેરિયેબલને અપડેટ ડેટા મળે છે.
ઉદાહરણ તરીકે, ધારો કે તમે દરેક પોસ્ટની સામગ્રીના અંતમાં કંઈક ઉમેરવા માગો છો, તો તમે તેને $content વેરીએબલમાં આના જેવી જોડી શકો છો.
add_filter( 'the_content', 'wp_learn_amend_content' );
function wp_learn_amend_content( $content ) {
$additional_content = '<!-- wp:paragraph --><p>Filtered through <i>the_content</i></p><!-- /wp:paragraph -->';
$content = $content . $additional_content;
return $content;
}
આ ઉદાહરણમાં, તમે ફકરા બ્લોકમાં અમુક ટેક્સ્ટ ઉમેરી રહ્યાં છો, જે આગળના છેડે દરેક પોસ્ટના તળિયે રેન્ડર થાય છે.
ફિલ્ટર કૉલબેકમાંથી હંમેશા કંઈક પાછું આપવું ખૂબ જ મહત્વપૂર્ણ છે, આદર્શ રીતે, ફિલ્ટરને પસાર કરેલ ચલની સંશોધિત સામગ્રી. કંઈક પાછું ન આપવાથી તમારી વર્ડપ્રેસ સાઇટ પર ઘાતક ભૂલ થશે.
ચાલો અમારી વર્ડપ્રેસ સાઇટમાં તે કેવું દેખાય છે તેના પર એક નજર કરીએ.
જો તમે આગળના છેડે કોઈપણ પોસ્ટ અથવા પૃષ્ઠ જોશો, તો તમને સામગ્રીના તળિયે “ફિલ્ટર the_content દ્વારા” ટેક્સ્ટ દેખાશે.
તેથી, જેમ તમે આ ઉદાહરણમાંથી જોઈ શકો છો, ફિલ્ટર હુક્સ તમને કોડ એક્ઝેક્યુશનમાં ચોક્કસ બિંદુએ ડેટાના અમુક ટુકડાઓને સંશોધિત કરવાની મંજૂરી આપે છે.