જેમ તમે વર્ડપ્રેસ હૂક્સનો ઉપયોગ કરીને ડેવલપમેન્ટમાં વધુ ઊંડાણમાં જાઓ છો, તેમ હૂક્સ કેવી રીતે કામ કરે છે તેની કેટલીક વિગતો સમજવી જરૂરી છે.
આ પાઠમાં તમે હૂક્સનો ઉપયોગ કરીને ડેવલપમેન્ટ કરતી વખતે અનુસરવા જેવી કેટલીક સારી પ્રથા શીખશો.
હૂક્સને નામ આપવું
પહેલી સારી પ્રથા એ હૂક્સને નામ આપવાની છે. ચાલો, વર્ડપ્રેસ કોર જે કેટલાક નામકરણના રિવાજો અનુસરે છે તે જોઈએ.
ઍક્શન્સ
ઍક્શન્સ સામાન્ય રીતે જ્યારે કોઈ ફેરફાર થાય છે ત્યારે ઉમેરવામાં આવે છે, તેથી ઍક્શન હૂકના નામમાં તે ફેરફાર સાથે સંબંધિત ક્રિયાપદનો ઉપયોગ કરવો જોઈએ.
ઉદાહરણ તરીકે, જ્યારે કોઈ પોસ્ટ ડિલીટ થાય છે ત્યારે ટ્રિગર થતા વર્ડપ્રેસ કોર એક્શન હૂકનું નામ delete_post છે.
do_action( 'delete_post' );
જો તમે ફેરફાર થાય તે પહેલાં કોઈ ઍક્શન ઉમેરવા માંગતા હો, તો તેના નામની આગળ pre_ લગાવી શકો છો.
do_action( 'pre_delete_post' );
આખરે, જો તમે કોઈ વાસ્તવિક ઘટના થયા પછી ઍક્શન ઉમેરવા માંગતા હો, તો તેના નામમાં ભૂતકાળનું ક્રિયાપદ વાપરવાનો રિવાજ છે.
do_action( 'deleted_post' );
ફિલ્ટર્સ
ફિલ્ટર હૂક્સ ના નામ ઘણીવાર તે જ વેરીએબલના નામ પરથી આપવામાં આવે છે, કારણકે ફિલ્ટર્સ સામાન્ય રીતે એવા વેરીએબલ સાથે જોડાયેલા હોય છે જેમાં ફેરફાર કરી શકાય.
ઉદાહરણ તરીકે, પોસ્ટના કન્ટેન્ટમાં ફેરફાર કરવા દેતા ફિલ્ટર હૂકનું નામ the_content છે.
$content = apply_filters( 'the_content', get_the_content() );
નામકરણમાં ટકરાવ ટાળો
તમારા હૂક્સને નામ આપતી વખતે, અન્ય પ્લગિન્સ અથવા થીમ્સ સાથે નામકરણમાં ટકરાવ ટાળવો અગત્યનો છે. આ માટે તમે તમારા હૂક્સના નામ માં તમારા પ્લગિનના નામ પ્રમાણે કે કોઈ અનન્ય ઓળખકર્તા (unique identifier) પ્રિફિક્સ તરીકે ઉમેરી શકો છો.
do_action( 'wp_learn_delete_book' );
apply_filters( 'wp_learn_lesson_url', 'https://example.org/lesson' );
ફિલ્ટરના પ્રકારોને હેન્ડલ કરવા
ફિલ્ટરનો ઉપયોગ કરતી વખતે, ફિલ્ટરમાંથી પાછો આવતા વેરીએબલનો પ્રકાર ગેરંટીડ હોતો નથી, ભલે તે ડોક્યુમેન્ટેશનમાં લખવામાં આવ્યો હોય.
સમસ્યા
આનું કારણ એ છે કે ફિલ્ટર પર જે છેલ્લી કોલબેક ચાલે છે, તે જ નક્કી કરે છે કે ફિલ્ટરમાંથી શું પાછું આવશે.
શરૂઆતમાં આ કોઈ સમસ્યા જેવું લાગે નહીં, કારણ કે ડેવલપર તરીકે તમે એ જ પ્રકારનું મૂલ્ય પાછું આપવાની કાળજી રાખશો.
જો કે, જેમ તમે કસ્ટમ હૂક્સના પાઠમાંથી યાદ કરશો, જે રીતે તમે ઍક્શન્સ અને ફિલ્ટર્સમાં હૂક કરી શકો છો, તેજ રીતે બીજા ડેવલપર્સ પણ કરી શકશે.

આનો અર્થ એ છે કે જો તમે તમારા પ્લગિનમાં કસ્ટમ હૂક્સ ઉમેરો છો, તો તમારે ખાતરી કરવી જોઈએ કે પાછો આવતો ડેટા સાચા પ્રકારનો છે, નહીંતર તમારા પ્લગિનની કામગીરી બગડી શકે છે.
ઉકેલ
આનો ઉકેલ બે ભાગમાં આવે છે:
તમારા ફિલ્ટરના આઉટપુટને વેલિડેટ કરવું
કોઈપણ ફિલ્ટર કોલબેકમાંથી પાછું આવતું મૂલ્ય જે પ્રકારની તમે અપેક્ષા રાખો છો તે જ રહે તેની ખાતરી કરવા માટે સૌથી સારો રસ્તો એ છે કે તમે તમારા કોડમાં ડેટા પ્રકારને વેલિડેટ કરો.
Integer, float કે boolean જેવા પ્રિમિટિવ પ્રકારો માટે, તમે PHP ની ટાઇપ કાસ્ટિંગ સિસ્ટમનો ઉપયોગ કરી શકો છો, જેથી પાછું આવતું મૂલ્ય સાચા પ્રકારનું હોય તેની ખાતરી થાય:
boolean
:$is_admin = (bool) apply_filters( 'wp_learn_is_admin', true );
integer
:$book_count = (int) apply_filters( 'wp_learn_book_count', 10 );
float
:$base_price = (float) apply_filters( 'wp_learn_base_price', 10.0 );
જો કે, વધુ જટિલ વેલિડેશન અથવા અન્ય પ્રકારો માટે, મેન્યુઅલ વેલિડેશન ચેક લાગુ કરવું વધુ સારું છે.
ઉદાહરણ તરીકે, string કે array માટે, કાસ્ટિંગ કરવા કરતાં પાછું આવતું મૂલ્ય સાચા પ્રકારનું છે કે કેમ તે ચેક કરવું વધુ સારું છે, નહીંતર આ એક PHP fatal error તરફ દોરી શકે છે.
ઉદાહરણ તરીકે, કોઈપણ હૂક ના કોલબેકમાંથી આવેલું મૂલ્ય string છે કે કેમ તે ચકાશવા માટે તમે PHP ના is_string() ફંક્શનનો ઉપયોગ કરી શકો છો:
$book_slug = apply_filters( 'wp_learn_book_slug', 'books' );
if ( ! is_string( $book_slug ) ) {
// either reset the value or throw an error
}
જો નહીં, તો તમે મૂલ્યને રીસેટ કરી શકો છો અથવા એક error આપી શકો છો.
તમારા કોલબેકના મૂલ્યની ખાતરી કરો
હકીકત માં ફિલ્ટરમાંથી પાછો આવતા વેરીએબલનો પ્રકાર બદલી શકાય છે, એટલે કે કોઈપણ હૂક કરેલા કોલબેકમાં ખોટા પ્રકારનું વેરીએબલ પાસ કરવામાં આવી શકે છે.

તેથી, જો તમે કોઈ કોલબેક ફંક્શનને ફિલ્ટરમાં હૂક કરો છો, તો તેના પર કોઈપણ ઓપરેશન કરતા પહેલાં મળેલા મૂલ્યનો પ્રકાર હંમેશા ચકાસવો જરૂરી છે.
add_filter( 'wp_learn_book_slug', 'jon_doe_edit_book_slug' );
function jon_doe_edit_book_slug( $book_slug ) {
if ( ! is_string( $book_slug ) ) {
// throw some error because the type is incorrect
}
// continue with your functionality because the type is correct
return 'book';
}
તમે પહેલાની જેમ જ પદ્ધતિઓનો ઉપયોગ કરી મળેલા વેરીએબલના પ્રકારને વેલિડેટ કરી શકો છો.
PHP ની ટાઇપ જગ્લિંગ વિશે વધુ માહિતી માટે તમે PHP ડોક્યુમેન્ટેશન નો સંદર્ભ લઈ શકો છો.
વિવિધ ચલ હેન્ડલિંગ ફંકશન્સ માટે એક અલગ વિભાગ પણ છે.
હૂક વિશે માહિતી મેળવવી
હૂક્સ વિશે જાણવા માટેની બીજી સારી વાત એ છે કે તેમના વિશે માહિતી કેવી રીતે મેળવવી.
વર્તમાન હૂક નક્કી કરવો
વર્ડપ્રેસ કોલબેક ફંક્શન અથવા મેથડને એકથી વધુ હૂક પર ઉપયોગ કરવાની છૂટ આપે છે.
આના કારણે, કોલબેક ક્યા હૂક પર ચાલી રહ્યું છે તે ક્યારેક અસ્પષ્ટ હોઈ શકે છે.
કોઈપણ કોલબેક ફંક્શનમાં, વર્તમાન ફિલ્ટર કે ઍક્શન કયા કોલબેક થી ચાલી રહ્યું છે તે નક્કી કરવા માટે current_filter અથવા current_action ફંક્શનનો ઉપયોગ કરી શકાય છે.
હૂક કેટલી વાર ચાલી ચૂક્યું છે તે ચકાસો
કેટલીકવાર, હૂક કરેલું કોલબેક પહેલેથી ચાલી ચૂક્યું છે કે કેમ તે જાણવું મહત્વપૂર્ણ છે, જેથી તેને ફરીથી ચાલતા રોકી શકાય.
કોઈપણ કોલબેક ફંક્શનની અંદર, વર્તમાન રિક્વેસ્ટમાં કેટલી વાર ફિલ્ટર લાગુ થયેલ છે તે જાણવા માટે તમે did_filter ફંક્શનનો ઉપયોગ કરી શકો છો અને કેટલી વાર ઍક્શન લાગુ થયેલ છે તે જાણવા માટે તમે did_action ફંક્શનનો ઉપયોગ કરી શકો છો.