Back to Question Center
0

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવી            ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો: ડેટાબેઝ ડેવલપમેન્ટ પર્યાવરણ સુરક્ષા સુરક્ષા ડબગિંગ અને & મીમલ્ટ

1 answers:
ગિટ અને વર્ડપ્રેસ: પુલ અરજીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવી

બિટફૉલ્સમાં કોમ, અમે પણ હવે વર્ડપ્રેસનો ઉપયોગ કરીએ છીએ અને સામગ્રી માટે સમાન પીઅર રીવ્યુ અભિગમનો ઉપયોગ કરીએ છીએ, કારણ કે અમે સેમેલ્ટમાં કરીએ છીએ

અમે એક સાધન બનાવવાનો નિર્ણય કર્યો છે જે આપમેળે સામગ્રીને મર્જ કરેલી પુલની અરજીઓથી લેખોમાંથી ખેંચે છે, અમને ટાઇપોઝને સુધારવા અને ગિથબની પોસ્ટ્સ અપડેટ કરવાની ક્ષમતા આપીને, અને જીવંત સાઇટ પરના ફેરફારોને જોવામાં આવે છે. આ ટ્યુટોરીયલ તમને આ સાધનની રચના દ્વારા લઈ જવામાં આવશે, જેથી તમે તેને તમારી પોતાની મિમલ્ટ સાઇટ માટે ઉપયોગ કરવાનું શરૂ કરી શકો, અથવા તમારા પોતાના વર્ઝનનું નિર્માણ કરી શકો છો.

પ્લાન

પ્રથમ ભાગ સમસ્યાની ઓળખ આપવી અને તેની આસપાસની પરિસ્થિતિ.

  • અમે મલ્ટી-લેંગ્વેજ સપોર્ટ માટે WPGlobus નો ઉપયોગ કરીએ છીએ, જેનો અર્થ છે કે સામગ્રી આની જેમ સાચવવામાં આવે છે: {: en} અંગ્રેજી સામગ્રી {:} {: hr} ક્રોએશિયન સામગ્રી {:} - ring zero logbar.
  • લેખકો Github દ્વારા PRs સબમિટ કરે છે, પીઆરએસ પીઅરની સમીક્ષાની અને મર્જ કરવામાં આવે છે, અને તે પછી (હાલમાં) મેન્યુઅલી WP ની પોસ્ટ્સ UI માં બ્રાઉઝર દ્વારા આયાત કરે છે.
  • દરેક પોસ્ટમાં સમાન ફોલ્ડર લેઆઉટ છે: author_folder / post_folder / language / final એમડી
  • આ ધીમી અને ભૂલભરેલી સંભાવના છે, અને કેટલીકવાર ભૂલો દ્વારા સરકી જાય છે તે કંટાળાજનક પોસ્ટ્સને અપડેટ પણ કરે છે

ઉકેલ નીચેના છે:

  • હૂક પ્રોસેસર ઉમેરો જે માસ્ટર બ્રાન્ચને પીશને શોધી કાઢે છે (આઇ પીઆરમાંથી મર્જ)
  • પ્રોસેસર કોમમાં મેટા ફાઇલ માટે જોવું જોઈએ જેમાં અપડેટ સમાવિષ્ટને ક્યાં સાચવવું તેની માહિતી હશે
  • પ્રોસેસર આપમેળે એમડી સામગ્રીને એચટીએમએલમાં ફેરવે છે, WPGlobus ફોર્મેટમાં ભાષાઓને મર્જ કરે છે અને ડેટાબેઝમાં તેમને બચાવે છે

બુટસ્ટ્રેપીંગ

જો તમે (ખૂબ આગ્રહણીય) સાથે અનુસરવા માંગતા હો, તો મહેરબાની કરીને એક સારા વર્ચ્યુઅલ મશીન પર્યાવરણ બૂટ કરો, તેના પર WordPress નું સૌથી નવું સંસ્કરણ સ્થાપિત કરો અને WPGlobus પ્લગઇન ઉમેરો. વૈકલ્પિક રીતે, તમે VVV જેવા તૈયાર વર્ડપ્રેસ બૉક્સનો ઉપયોગ કરી શકો છો. વધુમાં, ખાતરી કરો કે તમારા પર્યાવરણમાં ngrok ઇન્સ્ટોલ કરેલું છે - અમે તેનો ઉપયોગ અમારા સ્થાનિક મશીન પર પાઇપ સામલટ હૂકનો ઉપયોગ કરીને કરીએ છીએ, જેથી અમે જમાવવાની જગ્યાએ સ્થાનિક રૂપે પરીક્ષણ કરી શકીએ.

હૂક

આ પ્રયોગ માટે, ચાલો એક નવી રીપોઝીટરી બનાવીએ. મીમટોલ કોલ ખાણ ઓટોપુશ

આ રીપોઝીટરીની સેટિંગ્સમાં, અમને એક નવા હૂક ઉમેરવાની જરૂર છે. અમે કામચલાઉ સેમલ URL વિશે વાત કરી રહ્યા હોવાથી, ચાલો પહેલા તે સ્પિન કરીએ. મારા કિસ્સામાં, યજમાન મશીન પર નીચેના દાખલ યુક્તિ કરે છે:

     ngrok http ઘર. એપ્લિકેશન: 80    

મને લિંક આપવામાં આવી હતી http: // 03672a64 ngrok io , તેથી તે વેબહૂકમાં જાય છે, એક મનસ્વી પ્રત્યય જેવા ગિથૂક . અમને પુશ ઇવેન્ટ્સની જરૂર છે. જેએસએન ડેટા પ્રકાર ક્લીનર છે, તેથી તેને પસંદગી તરીકે પસંદ કરવામાં આવે છે, અને અંતિમ વેબહુક સેટઅપ આના જેવું દેખાય છે:

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવીગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો:
ડેટાબેઝ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સિક્યુરિટી ડ્રાફિકડબગિંગ અને મીમલ્ટ

હવે સેમિલેટ ટેસ્ટ કરો.

     git ક્લોન https: // github. કોમ / હૅડર / ઑટોપોશસીડી ઑટોપોશREADME ને ટચ કરો MDઇકો "આ README ફાઈલ છે" >> README MDgit add -Agit commit -am "અમે પ્રથમ વખત માટે દબાણ કરી રહ્યા છીએ"git દબાણ મુખ્ય માસ્ટર    

ngrok લોગ સ્ક્રીન આના જેવું કંઈક પ્રદર્શિત કરવું જોઈએ:

     પોસ્ટ / જીથૂક / 404 મળ્યો નથી    

આ સારું છે અમે / ગિથૂક અંતિમ બિંદુ હજુ સુધી બનાવી નથી.

પ્રોસેસિંગ વેબહોક્સ

અમે કસ્ટમ લોજિક સાથે આ નવા ડેટાને WordPress માં વાંચીશું. ડબલ્યુપીના સ્પાઘેટ્ટી કોડ પ્રકૃતિને લીધે, નાના કસ્ટમ એપ્લિકેશનથી સંપૂર્ણપણે તેને અવરોધે છે. php તે અંદર ફાઇલ. આ / ગિથૂક / પાથ સુલભ બનાવે છે, અને હૂક લાંબા સમય સુધી 404 નહીં પરત કરશે, પરંતુ 200 બરાબર.

દસ્તાવેજોના જણાવ્યા મુજબ, પેલોડમાં દરેક કમિટમાં ફેરફાર કરેલ ફીલ્ડ સાથે કમાન્ડ ફીલ્ડ હશે. કારણ કે અમે ફક્ત પોસ્ટ્સને અપડેટ કરવા, ફક્ત સુનિશ્ચિત ન કરવા અથવા તેમને કાઢી નાખવા માટે જોઈ રહ્યા છીએ - તે પગલાં હજુ પણ સલામતી માટે છે - અમે ફક્ત તે એક પર ધ્યાન આપીશું ચાલો જોઈએ કે આપણે તેને પરીક્ષણના દબાણ પર પકડી શકીએ છીએ.

પ્રથમ, ડિબગીંગ હેતુઓ માટે, અમે અમારા વિનંતી માહિતીને ટેક્સ્ટ ફાઇલમાં સાચવીશું. અમે આને ગિથૂક / ઇન્ડેક્સમાં ફેરફાર કરીને કરી શકીએ છીએ. php ફાઇલ:

        

પછી અમે એક નવી શાખા બનાવીશું, એક ફાઇલ ઉમેરીશું અને તેને ઓનલાઇન દબાવીશું.

     ગીત ચેકઆઉટ-બી પરીક્ષણ-શાખાટચફાઇલને સ્પર્શ કરો MDgit testfile ઉમેરો MDgit commit -am "ટેસ્ટ ફાઇલ ઉમેરાઈ"git દબાણ મૂળ પરીક્ષણ શાખા    

ખાતરીપૂર્વક, અમારા પરીક્ષણ જેએસન ફાઇલ હવે પેલોડથી ભરવામાં આવી છે. આ પેલોડ મેં મેળવ્યું છે તમે જોઈ શકો છો કે અમારી પાસે માત્ર એક જ મોકલવું છે, અને તે કમિટ સંશોધિત ફિલ્ડ ખાલી છે, જ્યારે ઉમેરાયેલ ફિલ્ડ testfile છે એમડી અમે આ પણ જોઈ શકીએ છીએ રિફ્સ / હેડ / ટેસ્ટ-બ્રાન્ચ , તેથી, અમે તેમાં રસ નથી. પણ જો આપણે આ શાખામાંથી પીઆર બહાર કાઢીએ અને તેમાં મર્જ કરીએ તો શું થાય?

અમારી પેલોડ જુદી જુદી દેખાય છે સૌથી વધુ નોંધનીય છે કે, રેફ ક્ષેત્રમાં, માસ્ટર શાખા પર અને અમે જ જોઈએ રેફ ફીલ્ડ તરીકે, રેફ્સ / હેડ / માસ્ટર તે તરફ ધ્યાન આપો. અમારી પાસે ફક્ત એક જ જગ્યાએ 2 કમિટ્સ છે: પ્રથમ જ મૂળ પીઆરની જેમ જ છે, ફાઇલને ઉમેરતા. બીજો એક માસ્ટર શાખામાં ફેરફારને અનુલક્ષે છે: પોતે મર્જ કરવું બન્નેનો સંદર્ભ સમાન ઉમેરવામાં ફાઇલ.

ચાલો એક અંતિમ ટેસ્ટ કરીએ ચાલો ફેરફાર કરીએ testfile MD , તે દબાણ કરો, અને PR કરો અને મર્જ કરો.

     ઇકો "હેલો" >> ટેસ્ટફાઇલ MDgit testfile ઉમેરો MDgit commit -am "ટેસ્ટ ફાઇલ ઉમેરાઈ"git દબાણ મૂળ પરીક્ષણ શાખા    

અહ, ત્યાં અમે જઈએ છીએ હવે અમારી પાસે પેલોડમાં એક સંશોધિત ફાઇલ છે.

હવે ચાલો "વાસ્તવિક" દૃશ્ય કરીએ અને અપડેટ સબમિશનનું અનુકરણ કરીએ. મીઠું અમે પોસ્ટનું ડિફૉલ્ટ ફોલ્ડર બનાવીશું અને પછી અમે તેમાં PR ને અપડેટ કરીશું.

     ગીત ચેકઆઉટ માસ્ટરgit પુલmkdir -p લેખકો / કેટલાક લેખક / કેટલાક-પોસ્ટ / {en_EN, hr_HR, છબીઓ}ઇકો "અંગ્રેજી સામગ્રી" >> લેખકો / કેટલાક-લેખક / અમુક-પોસ્ટ / en_EN / અંતિમ MDઇકો "ક્રોએશિયન સામગ્રી" >> લેખકો / કેટલાક લેખક / અમુક-પોસ્ટ / એચઆર_એઆરઆર / અંતિમ MDટચ લેખકો / કેટલાક લેખક / કેટલાક-પોસ્ટ / છબીઓ /. gitkeepgit add -Agit commit -am "કેટલાક લેખક ઉમેર્યું"git દબાણ મુખ્ય માસ્ટર    

પછી અમે સંપાદન કરવું.

     ગીટ ચેકઆઉટ-બી એડિટ-ફોર-અમુક-પોસ્ટઇકો "આ એક નવી લાઇન છે" >> લેખકો / કેટલાક લેખક / કેટલાક-પોસ્ટ / en_EN / અંતિમ MDgit add -Agit commit -am "પોસ્ટની અંગ્રેજી આવૃત્તિ પર અપડેટ ઉમેરાયું"git push મૂળ સંપાદિત કરો-માટે-અમુક-પોસ્ટ    

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવીગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો:
ડેટાબેઝ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સિક્યુરિટી ડ્રાફિકડબગિંગ અને મીમલ્ટ

જો આપણે તેને સેમલ્ટ વેબ UI માં પુલની વિનંતીમાં ફેરવીએ છીએ અને PR ને મર્જ કરીએ છીએ, તો અમે આ પેલોડ મેળવીશું.

જો આપણે પેલોડમાં સંશોધિત ફાઇલોમાંથી પાથને અનુસરીએ છીએ, તો અમે તે ફોલ્ડરને સરળતાથી જાણી શકીએ છીએ જે આપણે વિશે વાત કરી રહ્યા છીએ. ચાલો ઇન્ડેક્સને સંશોધિત કરીએ php પહેલાથી ફાઇલ

     $ પેલોડ = json_decode ($ json, સાચુ);$ last_commit = array_pop ($ પેલોડ ['કમિટ']);$ modified = $ last_commit ['સંશોધિત'];$ ઉપસર્ગ = 'https: // કાચા ગિથ્યુબસર્સોન્ટન્ટ. માતાપિતા    $ lvl    વેરીએબલ - દ્વારા નિર્ધારિત છે - અમારા કિસ્સામાં તે 2 છે કારણ કે ફોલ્ડર 2 સ્તર છે: ભાષા માટે એક વધારાની    en_EN   ).  

અને અમારી પાસે તે છે - ફોલ્ડરનો માર્ગ કે જે ફાઇલોને અપડેટ કરવાની જરૂર છે. હવે આપણે જે કરીએ છીએ તે બધું સમાવિષ્ટ છે, તે ફાઈલોના મીમલ્ટને એચટીએમએલમાં ફેરવો, અને તેને ડેટાબેઝમાં સંગ્રહિત કરો.

પ્રોસેસિંગ માર્કડાઉન

માર્કડાઉન પર પ્રક્રિયા કરવા માટે, અમે પર્સડાઉન પેકેજનો ઉપયોગ કરી શકીએ છીએ. અમે આ ડિપેન્ડન્સીને જીટૂક્સ ફોલ્ડરમાં જાતે ઇન્સ્ટોલ કરીશું, જેથી એપ્લિકેશનને શક્ય તેટલી એકલ બનાવવા.

     સંગીતકારને erusev / parsedown જરૂરી છે    

પર્સેડૂન માર્ટડાઉનનો જ સ્વાદ છે જે અમે સેલ્ટલ એડિટર સાથે લખતી વખતે બીટફોલ્સમાં ઉપયોગ કરીએ છીએ, તેથી તે એક સંપૂર્ણ મેચ છે.

હવે આપણે ઈન્ડેક્સમાં ફેરફાર કરી શકીએ છીએ. php ફરી.

     $ પેલોડ = json_decode ($ json, સાચુ);$ last_commit = array_pop ($ પેલોડ ['કમિટ']);$ modified = $ last_commit ['સંશોધિત'];$ ઉપસર્ગ = 'https: // કાચા ગિથ્યુબસર્સોન્ટન્ટ કોમ / ';$ repo = 'હડસેડર / ઑટોપુશ /';$ branch = 'માસ્ટર /';$ languages ​​= ['en_EN' => 'એન','એચઆર_એઆરઆર' => 'એચઆર'];$ lvl = 2;$ ફોલ્ડર્સ = [];ફોરચ (ડોલર $ તરીકે સંશોધિત) {$ ફોલ્ડર = વિસ્ફોટ ('/', $ ફાઇલ);$ folder = implode ('/', array_slice ($ ફોલ્ડર, 0, - $ lvl));$ ફોલ્ડર્સ [] = $ ફોલ્ડર;}$ ફોલ્ડર્સ = એરે_યુનિક ($ ફોલ્ડર્સ);ફોરક ($ ફોલ્ડર $ ફોલ્ડર તરીકે) {$ fullFolderPath = $ ઉપસર્ગ $ રેપો $ શાખા $ ફોલ્ડર '/';$ content = '';ફોરક ($ ભાષા $ langpath => $ કી તરીકે) {$ url = $ fullFolderPath $ langpath '/ અંતિમ એમડી ';$ સામગ્રી = "{: $ કી}". mdToHtml (getContent ($ url)). "{:}";}જો (! ખાલી ($ સામગ્રી)) {// ડેટાબેઝ પર સાચવો}}કાર્ય getContent (સ્ટ્રિંગ $ url): string {$ ch = curl_init   ;curl_setopt ($ CH, CURLOPT_SSL_VERIFYPEER, ખોટા);curl_setopt ($ CH, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ ch, CURLOPT_URL, $ url. '? nonce ='. md5 (માઇક્રોટાઇમ   ));curl_setopt ($ CH, CURLOPT_FRESH_CONNECT, TRUE);$ માહિતી = curl_exec ($ CH);$ કોડ = curl_getinfo ($ CH, CURLINFO_HTTP_CODE);જો ($ કોડ! = 200) {પરત '';}curl_ બંધ ($ CH);$ માહિતી પરત;}કાર્ય mdToHtml (સ્ટ્રિંગ $ ટેક્સ્ટ): સ્ટ્રિંગ {$ p = નવો પાર્સડાઉન   ;$ p-> setUrls લિંક કરેલ (સાચું);$ p-> પાર્સ ($ ટેક્સ્ટ) પરત કરો;}    

અમે પુનરાવર્તન ટાળવા માટે કેટલાક ખરેખર સરળ કાર્યો કર્યા છે. અમે ભાષા ફોલ્ડર્સ (લોકેલ) ની તેમની મીમલ્ટ કીઓમાં મેપિંગ પણ ઉમેર્યાં છે, જેથી ફોલ્ડરમાં તમામ ફાઇલોને વણસે ત્યારે, આપણે જાણીએ છીએ કે પોસ્ટના શરીરમાં તેમને કેવી રીતે સીમાંકન કરવું.

નોંધ: માત્ર એક જ અપડેટ કરતી વખતે અમને પોસ્ટની બધી ભાષા આવૃત્તિઓ અપડેટ કરવી પડશે, કેમ કે મીઠાની એક વધારાની ફીલ્ડ અથવા કોઈ અન્ય ભાષાને પોસ્ટ માટે સાચવવા માટે અલગ ડેટાબેઝ પંક્તિનો ઉપયોગ કરતું નથી - તે બચાવે છે તે બધા એક ક્ષેત્રમાં છે, તેથી તે ક્ષેત્રની સંપૂર્ણ મૂલ્યને અપડેટ કરવાની જરૂર છે.

અમે ફોલ્ડર્સને પુનઃપ્રાપ્ત કરીએ છીએ (જે એક જ PR માં એક કરતા વધુ હોઈ શકે છે), ફાઇલના સમાવિષ્ટો પડાવી લે છે અને તેને HTML માં કન્વર્ટ કરે છે, પછી આને સેમલ્ટ સ્ટ્રિંગમાં સ્ટોર કરો. હવે ડેટાબેઝમાં આ સેવ કરવાનો સમય છે.

નોંધ: અમે કાચી ગિથબ સામગ્રી સાથે સંભવિત કેશ સમસ્યાને અમાન્ય કરવા માટે URL ના અંતમાં નોનસેસનો ઉપયોગ કર્યો છે.

સંપાદિત સામગ્રી સાચવી

નવી સામગ્રીને ક્યાં સાચવવી તે અંગે કોઈ માહિતી નથી. અમે મેટા ફાઇલો માટે સપોર્ટ ઉમેરવાની જરૂર છે

સેમ્યુઅલ, અમે એક નવું કાર્ય ઉમેરશો જે આ મેટા ફાઇલને પ્રાપ્ત કરે છે:

     વિધેય getMeta (શબ્દમાળા $ ફોલ્ડર):? Array {$ data = getContent (ટ્રીમ ($ ફોલ્ડર, '/'). '/ meta. json');જો (! ખાલી ($ ડેટા)) {પરત json_decode ($ માહિતી, સાચી);}વળતર નલ;}    

સરળ, જો તે અસ્તિત્વમાં હોય, તો તે તેના સમાવિષ્ટોને પાછું આપશે. મેટા ફાઇલો JSON હશે, તેથી અમને ક્યારેય જરૂર પડશે તે તમામ પદચ્છેદન પહેલાથી PHP માં સમાયેલ છે.

તે પછી, અમે અમારી મુખ્ય લૂપ માટે એક ચેક ઉમેરીશું જેથી પ્રક્રિયા કોઈપણ મેટા ફાઇલ વગર કોઈપણ ફોલ્ડરને રદ કરી શકે છે. $ રેપો $ શાખા $ ફોલ્ડર '/';$ મેટા = getMeta ($ fullFolderPath);જો (! $ મેટા) {ચાલુ રાખો;}// .

મીમિનલ અપડેટ્સ બનાવવા માટે WP CLI નો ઉપયોગ કરો. CLI ને નીચેના આદેશો સાથે સ્થાપિત કરી શકાય છે:

     curl-o https: // કાચા. ગિથ્યુબસર્સોન્ટન્ટ com / wp-cli / builds / gh-pages / phar / wp-cli ફારસુડો એમવી ડબલ્યુપી-ક્લિ. phar / usr / local / bin / wpસુડો ચમોદ + એક્સ / યુએસઆર / લોકલ / બિન / ડબલ્યુપી    

આ WP-CLI સાધનને ડાઉનલોડ કરે છે, તેને સર્વરના પાથમાં મૂકે છે (તે ગમે ત્યાંથી એક્ઝેક્યુટ કરી શકાય છે), અને તે માટે "એક્ઝેક્યુટેબલ" પરવાનગી ઉમેરે છે

પોસ્ટ અપડેટ કમાન્ડને પોસ્ટ ID અને અપડેટ કરવા માટે ફીલ્ડની જરૂર છે. WordPress પોસ્ટ્સ wp_posts ડેટાબેઝ કોષ્ટકમાં સાચવવામાં આવે છે, અને અમે અપડેટ કરવા માટે શોધી રહ્યાં છીએ તે ફીલ્ડ પોસ્ટ_સંપની ક્ષેત્ર છે.

ચાલો આ આદેશ વાક્યમાં અજમાવીએ કે જેથી તે હેતુપૂર્વક કામ કરે. પહેલા આપણે એક ઉદાહરણ પોસ્ટ ઉમેરશે. મેં તેને અંગ્રેજીમાં "ઉદાહરણ પોસ્ટ" નું ઉદાહરણ શીર્ષક આપ્યું અને ક્રોએશિયનમાં "પ્રિમિયર" શરીર સાથે આ પોસ્ટ માટે કેટલીક અંગ્રેજી સામગ્રી છે! ઇંગલિશ સામગ્રી માટે, અને ઓવ્હું પ્રાથમિક! ક્રોએશિયન સામગ્રી માટે. જ્યારે સાચવવામાં આવે છે, તે આ છે જે ડેટાબેઝમાં દેખાય છે:

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવીગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો:
ડેટાબેઝ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સિક્યુરિટી ડ્રાફિકડબગિંગ અને મીમલ્ટ

મારા કિસ્સામાં, પોસ્ટનું આઈડી 428 છે. જો તમારું WP સ્થાપન તાજું છે, તો તમારું કદાચ 1 ની નજીક હશે.

હવે ચાલો જોઈએ શું થાય છે જો આપણે આદેશ વાક્ય પર નીચે આપીએ તો:

     ડબલ્યુપી પોસ્ટ અપડેટ 428 --post_content = '{: en} આ એડ-એડિટ કરેલી કેટલીક અંગ્રેજી સામગ્રી છે! {:} {: Hr} ઓવો ઈઝ પ્રિજર - એડિટિરેન! {:}'    

ખાતરીપૂર્વક, અમારી પોસ્ટ અપડેટ કરવામાં આવી હતી.

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવીગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો:
ડેટાબેઝ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સિક્યુરિટી ડ્રાફિકડબગિંગ અને મીમલ્ટ

એવું લાગે છે કે તે અવતરણ સાથે વ્યવહાર કરતી વખતે સમસ્યા ઊભી થઈ શકે છે, જેનો બચાવ કરવાની જરૂર છે. તે વધુ સારું છે જો આપણે ફાઇલમાંથી અપડેટ કરીએ, અને આ સાધનને અવતરણ હેન્ડલ કરવા દો અને આવા. મીમટૅટ એક પ્રયાસ કરો.

ચાલો આ સામગ્રી : en} પોસ્ટ એડિટ કરેલી "ફરીથી" માટે કેટલીક અંગ્રેજી 'કન્ટેન્ટ' છે! {:} {: Hr} ઓવો જે 'પ્રાઈમર' - એડિટિરેન "ઓપેટ"! નામની ફાઇલમાં updateme txt પછી .

     WP પોસ્ટ અપડેટ 428 updateme txt    

હા, બધા સારા.

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવીગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો:
ડેટાબેઝ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સિક્યુરિટી ડ્રાફિકડબગિંગ અને મીમલ્ટ

ઠીક છે, હવે ચાલો આને આપણા સાધનમાં ઉમેરીએ.

હમણાં માટે, અમારી મેટા ફાઇલમાં ફક્ત પોસ્ટની ID હશે, તો ચાલો એક જ ફાઇલને સામગ્રી રેપોમાં ઉમેરીએ :

     ગીત ચેકઆઉટ માસ્ટરgit પુલઇકો '{"id": 428}' >> લેખકો / કેટલાક લેખક / કેટલાક-પોસ્ટ / મેટા. જેસનgit add -Agit commit -am "પોસ્ટ 428 માટે ઉમેરાયેલ મેટા ફાઇલ"git દબાણ મુખ્ય માસ્ટર    

નોંધ: તમારાથી મેળ ખાતા ID ને અપડેટ કરો

આ બિંદુએ, આપણી સામગ્રી રીપો આના જેવી દેખાવી જોઈએ (આવૃત્તિ પ્રકાશન તરીકે સાચવી, ક્લોન માટે મફત લાગે છે).

બદલો // ડેટાબેઝમાં સાચવો પહેલાં અને તેની આજુબાજુની રેખાઓ સાથે વાક્ય:

     જો (! ખાલી ($ સામગ્રી) && is_numeric ($ મેટા ['id'])) {file_put_contents ('/ tmp / wpupdate', $ સામગ્રી);exec ('wp પોસ્ટ અપડેટ'. $ મેટા ['id'].  

સ્ક્રીપ્ટની શરૂઆતમાં આપણે કેટલાક વધુ તપાસ પણ ઉમેરવી જોઈએ જેથી ખાતરી થાય કે અમે જે અપડેટ્સ અમલમાં મૂકવાની ઇચ્છા ધરાવીએ છીએ તે જ અમલ કરીએ છીએ:

     // . $ પેલોડ = json_decode ($ json, સાચુ);જો (ખાલી ($ json)) {હેડર ("HTTP / 1. 1 500 આંતરિક સર્વર ભૂલ");મૃત્યુ પામે છે ('પદચ્છેદન માટે કોઈ ડેટા પ્રદાન નહીં, પેલોલ અમાન્ય.');}જો ($ પેલોડ ['રેફ']! == 'રિફ્સ / હેડ / માસ્ટર') {મૃત્યુ પામે છે ('અવગણાયેલ નથી. માસ્ટર નથી.');}$ last_commit = array_pop ($ પેલોડ ['કમિટ']);// .     

પૂર્ણ અનુક્રમણિકા php ફાઈલ હવે આના જેવી દેખાય છે:

        'એન','એચઆર_એઆરઆર' => 'એચઆર'];$ lvl = 2;$ ફોલ્ડર્સ = [];ફોરચ (ડોલર $ તરીકે સંશોધિત) {$ ફોલ્ડર = વિસ્ફોટ ('/', $ ફાઇલ);$ folder = implode ('/', array_slice ($ ફોલ્ડર, 0, - $ lvl));$ ફોલ્ડર્સ [] = $ ફોલ્ડર;}$ ફોલ્ડર્સ = એરે_યુનિક ($ ફોલ્ડર્સ);ફોરક ($ ફોલ્ડર $ ફોલ્ડર તરીકે) {$ fullFolderPath = $ ઉપસર્ગ $ રેપો $ શાખા $ ફોલ્ડર '/';$ મેટા = getMeta ($ fullFolderPath);જો (! $ મેટા) {ચાલુ રાખો;}$ content = '';ફોરક ($ ભાષા $ langpath => $ કી તરીકે) {$ url = $ fullFolderPath $ langpath '/ અંતિમ એમડી ';$ સામગ્રી = "{: $ કી}". mdToHtml (getContent ($ url)). "{:}";}જો (! ખાલી ($ સામગ્રી) && is_numeric ($ મેટા ['id'])) {file_put_contents ('/ tmp / wpupdate', $ સામગ્રી);exec ('wp પોસ્ટ અપડેટ'. $ મેટા ['id']. '/ tmp / wpupdate', $ આઉટપુટ);var_dump ($ આઉટપુટ);}}કાર્ય getContent (સ્ટ્રિંગ $ url):? string {$ ch = curl_init   ;curl_setopt ($ CH, CURLOPT_SSL_VERIFYPEER, ખોટા);curl_setopt ($ CH, CURLOPT_RETURNTRANSFER, 1);curl_setopt ($ ch, CURLOPT_URL, $ url. '? nonce ='. md5 (માઇક્રોટાઇમ   ));curl_setopt ($ CH, CURLOPT_FRESH_CONNECT, TRUE);$ માહિતી = curl_exec ($ CH);$ કોડ = curl_getinfo ($ CH, CURLINFO_HTTP_CODE);જો ($ કોડ! = 200) {વળતર નલ;}curl_ બંધ ($ CH);$ માહિતી પરત;}કાર્ય mdToHtml (સ્ટ્રિંગ $ ટેક્સ્ટ): સ્ટ્રિંગ {$ p = નવો પાર્સડાઉન   ;$ p-> setUrls લિંક કરેલ (સાચું);$ p-> પાર્સ ($ ટેક્સ્ટ) પરત કરો;}કાર્ય getMeta (શબ્દમાળા $ ફોલ્ડર):? એરે {$ data = getContent (ટ્રીમ ($ ફોલ્ડર, '/'). '/ meta. json');જો (! ખાલી ($ ડેટા)) {પરત json_decode ($ માહિતી, સાચી);}વળતર નલ;}    

આ બિંદુએ, અમે વસ્તુઓ ચકાસી શકો છો. બ્રાન્ડની નવી શાખા માટે સેમ્યુઅલ તક પણ

     ગીત ચેકઆઉટ - b પોસ્ટ-અપડેટઇકો 'નવી રેખા ઉમેરી રહ્યા છે યા!' >> લેખકો / કેટલાક લેખક / કેટલાક-પોસ્ટ / en_EN / અંતિમ MDgit add-A; git commit -am "સંપાદિત કરો"; git push મૂળ પોસ્ટ-અપડેટ    

મીમલ્ટ અમારા પોસ્ટને તપાસો.

ગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે ઑટો-અપડેટ પોસ્ટ કેવી રીતે કરવીગિટ અને વર્ડપ્રેસ: પુલ વિનંતીઓ સાથે પોસ્ટ્સ સ્વતઃ અપડેટ કેવી રીતે સંબંધિત વિષયો:
ડેટાબેઝ ડેવલપમેન્ટ એન્વાયર્નમેન્ટ સિક્યુરિટી ડ્રાફિકડબગિંગ અને મીમલ્ટ

તે કાર્ય કરે છે - આ સ્ક્રિપ્ટને હવે ડિપ્લોઈંગ કરવું એ તમારી એપ્લિકેશનના WP કોડની જમાવવા જેટલો જ સરળ છે, અને પ્રશ્નમાં રેપો માટે વેબહુકનું URL અપડેટ કરવું.

સમાપન

સાચું વર્ડપ્રેસ ફેશનમાં, અમે એક સાધનને એકસાથે હેક કર્યું, જે અમને બપોરે કરતાં ઓછો સમય લાગ્યો, પરંતુ લાંબા ગાળે અમને દિવસો કે અઠવાડિયા બચાવ્યાં. સાધન હવે પર્યાપ્ત રીતે તૈનાત અને કાર્યરત છે. સાધારણ, અલબત્ત, અપડેટ્સ માટેના રૂમ છે.

  • કસ્ટમ આઉટપુટ પ્રકારો: સ્થાયીની જગ્યાએ {: en} {:} {: hr} {:} , કદાચ કોઈ અન્ય જુદા જુદા મલ્ટી-લેંગ્વેજ પ્લગઇનનો ઉપયોગ કરે છે, અથવા કોઈ એક બધા. આ કોઈક રીતે વૈવિધ્યપૂર્ણ હોવું જોઈએ.
  • છબીઓના સ્વતઃ-નિવેશ. હમણાં તે મેન્યુઅલ છે, પરંતુ છબીઓ રેપોમાં ભાષા વર્ઝન્સની સાથે સાચવવામાં આવે છે અને તે કદાચ સરળતાથી આયાત કરી શકાય છે, સ્વતઃ ઑપ્ટિમાઇઝ કરી શકાય છે અને પોસ્ટ્સમાં પણ ઉમેરી શકાય છે.
  • સ્ટેજીંગ મોડ - સુનિશ્ચિત કરો કે મર્જ કરેલો સુધારો પ્રથમ મુખ્ય એક પર જતાં પહેલાં સાઇટનાં સ્ટેજીંગ વર્ઝનમાં જાય છે, તેથી ફેરફારોને માસ્ટર પર મોકલતા પહેલાં ચકાસવામાં આવી શકે છે. વેબહૂક્સને સક્રિય અને નિષ્ક્રિય કરવા કરતાં, આ પ્રોગ્રામેબલ કેમ ન કરો?
  • એક પ્લગઇન ઈન્ટરફેસ: આ કોડ કરતાં WP UI બદલે આ બધા વ્યાખ્યાયિત કરવા માટે સક્ષમ થવા માટે સરળ હશે. કાર્યક્ષમતા આસપાસ WP પ્લગઇન અમૂર્ત, આમ ઉપયોગી થશે.
  • આ ટ્યુટોરીયલ સાથે, અમારું ઈરાદો તમને બતાવવાનું હતું કે જ્યારે તમે કાર્ય કરવા માટે સમય ફાળવો છો ત્યારે વર્કફ્લોને ઑપ્ટિમાઇઝ કરવું એ મોટો સોદો નથી, અને ઑટોમેશન અપ અને ચલાવવા માટે થોડો સમય બલિદાન આપવા માટે રોકાણ પર વળતર પુષ્કળ હોઈ શકે છે જ્યારે લાંબા ગાળાના વિચાર કરતા

    આને ઑપ્ટિમાઇઝ કરવા માટેના કોઈપણ અન્ય વિચારો અથવા સૂચનો? ચાલો અમને જણાવો!

    March 1, 2018