wordpress-starter 0.1 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (417) hide show
  1. data/CHANGELOG.md +13 -0
  2. data/README.md +47 -4
  3. data/lib/wordpress-starter.rb +3 -2
  4. data/stylesheets/wordpress/_defaults.scss +267 -20
  5. data/stylesheets/wordpress/_page.scss +0 -363
  6. data/stylesheets/wordpress/_responsive.scss +0 -115
  7. data/stylesheets/wordpress/_theme.scss +0 -82
  8. data/stylesheets/wordpress/_typography.scss +0 -134
  9. data/templates/foundation/404.php +24 -0
  10. data/templates/{starter → foundation}/admin/README.txt +0 -0
  11. data/templates/{starter → foundation}/admin/assets/css/admin-style.css +0 -0
  12. data/templates/{starter → foundation}/admin/assets/css/colorpicker.css +0 -0
  13. data/templates/{starter → foundation}/admin/assets/images/1col.png +0 -0
  14. data/templates/{starter → foundation}/admin/assets/images/2-col-portfolio.png +0 -0
  15. data/templates/{starter → foundation}/admin/assets/images/2cl.png +0 -0
  16. data/templates/{starter → foundation}/admin/assets/images/2cr.png +0 -0
  17. data/templates/{starter → foundation}/admin/assets/images/3-col-portfolio.png +0 -0
  18. data/templates/{starter → foundation}/admin/assets/images/3cm.png +0 -0
  19. data/templates/{starter → foundation}/admin/assets/images/3cr.png +0 -0
  20. data/templates/{starter → foundation}/admin/assets/images/4-col-portfolio.png +0 -0
  21. data/templates/{starter → foundation}/admin/assets/images/accept.png +0 -0
  22. data/templates/{starter → foundation}/admin/assets/images/button_check.png +0 -0
  23. data/templates/{starter → foundation}/admin/assets/images/colorpicker/blank.gif +0 -0
  24. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_background.png +0 -0
  25. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_hex.png +0 -0
  26. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_hsb_b.png +0 -0
  27. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_hsb_h.png +0 -0
  28. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_hsb_s.png +0 -0
  29. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_indic.gif +0 -0
  30. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_overlay.png +0 -0
  31. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_rgb_b.png +0 -0
  32. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_rgb_g.png +0 -0
  33. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_rgb_r.png +0 -0
  34. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_select.gif +0 -0
  35. data/templates/{starter → foundation}/admin/assets/images/colorpicker/colorpicker_submit.png +0 -0
  36. data/templates/{starter → foundation}/admin/assets/images/colorpicker/select.png +0 -0
  37. data/templates/{starter → foundation}/admin/assets/images/dropdown-arrow.png +0 -0
  38. data/templates/{starter → foundation}/admin/assets/images/favicon.ico +0 -0
  39. data/templates/{starter → foundation}/admin/assets/images/icon-add.png +0 -0
  40. data/templates/{starter → foundation}/admin/assets/images/icon-backup.png +0 -0
  41. data/templates/{starter → foundation}/admin/assets/images/icon-delete.png +0 -0
  42. data/templates/{starter → foundation}/admin/assets/images/icon-docs.png +0 -0
  43. data/templates/{starter → foundation}/admin/assets/images/icon-edit.png +0 -0
  44. data/templates/{starter → foundation}/admin/assets/images/icon-home.png +0 -0
  45. data/templates/{starter → foundation}/admin/assets/images/icon-info.png +0 -0
  46. data/templates/{starter → foundation}/admin/assets/images/icon-notice.png +0 -0
  47. data/templates/{starter → foundation}/admin/assets/images/icon-paint.png +0 -0
  48. data/templates/{starter → foundation}/admin/assets/images/icon-settings.png +0 -0
  49. data/templates/{starter → foundation}/admin/assets/images/icon-slider.png +0 -0
  50. data/templates/{starter → foundation}/admin/assets/images/icon-warn.png +0 -0
  51. data/templates/{starter → foundation}/admin/assets/images/icon_option.png +0 -0
  52. data/templates/{starter → foundation}/admin/assets/images/loading-bottom.gif +0 -0
  53. data/templates/{starter → foundation}/admin/assets/images/select.png +0 -0
  54. data/templates/{starter → foundation}/admin/assets/images/sign_warning.png +0 -0
  55. data/templates/{starter → foundation}/admin/assets/images/stop.png +0 -0
  56. data/templates/{starter → foundation}/admin/assets/images/toggle_tabs.png +0 -0
  57. data/templates/{starter → foundation}/admin/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  58. data/templates/{starter → foundation}/admin/assets/images/warning.png +0 -0
  59. data/templates/{starter → foundation}/admin/assets/images/wrench.png +0 -0
  60. data/templates/{starter → foundation}/admin/assets/images/wrench16.png +0 -0
  61. data/templates/{starter → foundation}/admin/assets/js/ajaxupload.js +0 -0
  62. data/templates/{starter → foundation}/admin/assets/js/colorpicker.js +0 -0
  63. data/templates/{starter → foundation}/admin/assets/js/cookie.js +0 -0
  64. data/templates/{starter → foundation}/admin/assets/js/jquery.maskedinput-1.2.2.js +0 -0
  65. data/templates/{starter → foundation}/admin/assets/js/jquery.tipsy.js +0 -0
  66. data/templates/{starter → foundation}/admin/assets/js/of-medialibrary-uploader.js +0 -0
  67. data/templates/{starter → foundation}/admin/assets/js/smof.js +0 -0
  68. data/templates/foundation/admin/classes/class.options-machine.php +627 -0
  69. data/templates/{starter → foundation}/admin/front-end/options.php +0 -0
  70. data/templates/{starter → foundation}/admin/functions/functions.admin.php +0 -0
  71. data/templates/{starter → foundation}/admin/functions/functions.interface.php +0 -0
  72. data/templates/{starter → foundation}/admin/functions/functions.load.php +0 -0
  73. data/templates/foundation/admin/functions/functions.mediauploader.php +194 -0
  74. data/templates/foundation/admin/functions/functions.options.php +508 -0
  75. data/templates/{starter → foundation}/admin/functions/functions.php +0 -0
  76. data/templates/{starter → foundation}/admin/index.php +88 -86
  77. data/templates/{starter → foundation}/admin/layouts/default.css +0 -0
  78. data/templates/{starter → foundation}/admin/layouts/placebo.css +0 -0
  79. data/templates/foundation/archive.php +57 -0
  80. data/templates/foundation/category.php +40 -0
  81. data/templates/foundation/comments.php +65 -0
  82. data/templates/foundation/content-aside.php +26 -0
  83. data/templates/foundation/content-image.php +29 -0
  84. data/templates/foundation/content-link.php +27 -0
  85. data/templates/foundation/content-none.php +21 -0
  86. data/templates/foundation/content-page.php +24 -0
  87. data/templates/foundation/content-quote.php +26 -0
  88. data/templates/foundation/content-status.php +33 -0
  89. data/templates/foundation/content.php +67 -0
  90. data/templates/foundation/editor-style.scss +359 -0
  91. data/templates/foundation/footer.php +29 -0
  92. data/templates/foundation/functions.php +1425 -0
  93. data/templates/foundation/header.php +63 -0
  94. data/templates/foundation/ie.scss +1 -0
  95. data/templates/{starter → foundation}/images/bg/bg0.png +0 -0
  96. data/templates/{starter → foundation}/images/bg/bg1.png +0 -0
  97. data/templates/{starter → foundation}/images/bg/bg10.png +0 -0
  98. data/templates/{starter → foundation}/images/bg/bg11.png +0 -0
  99. data/templates/{starter → foundation}/images/bg/bg2.png +0 -0
  100. data/templates/{starter → foundation}/images/bg/bg3.png +0 -0
  101. data/templates/{starter → foundation}/images/bg/bg4.png +0 -0
  102. data/templates/{starter → foundation}/images/bg/bg5.png +0 -0
  103. data/templates/{starter → foundation}/images/bg/bg6.jpg +0 -0
  104. data/templates/{starter → foundation}/images/bg/bg7.jpg +0 -0
  105. data/templates/{starter → foundation}/images/bg/bg8.png +0 -0
  106. data/templates/{starter → foundation}/images/bg/bg9.png +0 -0
  107. data/templates/foundation/images/fairhead-icons/fc-webicon-behance-m.png +0 -0
  108. data/templates/foundation/images/fairhead-icons/fc-webicon-behance-s.png +0 -0
  109. data/templates/foundation/images/fairhead-icons/fc-webicon-behance.png +0 -0
  110. data/templates/foundation/images/fairhead-icons/fc-webicon-behance.svg +48 -0
  111. data/templates/foundation/images/fairhead-icons/fc-webicon-creativecloud-m.png +0 -0
  112. data/templates/foundation/images/fairhead-icons/fc-webicon-creativecloud-s.png +0 -0
  113. data/templates/foundation/images/fairhead-icons/fc-webicon-creativecloud.png +0 -0
  114. data/templates/foundation/images/fairhead-icons/fc-webicon-creativecloud.svg +48 -0
  115. data/templates/foundation/images/fairhead-icons/fc-webicon-dribbble-m.png +0 -0
  116. data/templates/foundation/images/fairhead-icons/fc-webicon-dribbble-s.png +0 -0
  117. data/templates/foundation/images/fairhead-icons/fc-webicon-dribbble.png +0 -0
  118. data/templates/foundation/images/fairhead-icons/fc-webicon-dribbble.svg +28 -0
  119. data/templates/foundation/images/fairhead-icons/fc-webicon-dropbox-m.png +0 -0
  120. data/templates/foundation/images/fairhead-icons/fc-webicon-dropbox-s.png +0 -0
  121. data/templates/foundation/images/fairhead-icons/fc-webicon-dropbox.png +0 -0
  122. data/templates/foundation/images/fairhead-icons/fc-webicon-dropbox.svg +73 -0
  123. data/templates/foundation/images/fairhead-icons/fc-webicon-evernote-m.png +0 -0
  124. data/templates/foundation/images/fairhead-icons/fc-webicon-evernote-s.png +0 -0
  125. data/templates/foundation/images/fairhead-icons/fc-webicon-evernote.png +0 -0
  126. data/templates/foundation/images/fairhead-icons/fc-webicon-evernote.svg +62 -0
  127. data/templates/foundation/images/fairhead-icons/fc-webicon-facebook-m.png +0 -0
  128. data/templates/foundation/images/fairhead-icons/fc-webicon-facebook-s.png +0 -0
  129. data/templates/foundation/images/fairhead-icons/fc-webicon-facebook.png +0 -0
  130. data/templates/foundation/images/fairhead-icons/fc-webicon-facebook.svg +15 -0
  131. data/templates/foundation/images/fairhead-icons/fc-webicon-flickr-m.png +0 -0
  132. data/templates/foundation/images/fairhead-icons/fc-webicon-flickr-s.png +0 -0
  133. data/templates/foundation/images/fairhead-icons/fc-webicon-flickr.png +0 -0
  134. data/templates/foundation/images/fairhead-icons/fc-webicon-flickr.svg +14 -0
  135. data/templates/foundation/images/fairhead-icons/fc-webicon-github-m.png +0 -0
  136. data/templates/foundation/images/fairhead-icons/fc-webicon-github-s.png +0 -0
  137. data/templates/foundation/images/fairhead-icons/fc-webicon-github.png +0 -0
  138. data/templates/foundation/images/fairhead-icons/fc-webicon-github.svg +38 -0
  139. data/templates/foundation/images/fairhead-icons/fc-webicon-googleplus-m.png +0 -0
  140. data/templates/foundation/images/fairhead-icons/fc-webicon-googleplus-s.png +0 -0
  141. data/templates/foundation/images/fairhead-icons/fc-webicon-googleplus.png +0 -0
  142. data/templates/foundation/images/fairhead-icons/fc-webicon-googleplus.svg +52 -0
  143. data/templates/foundation/images/fairhead-icons/fc-webicon-icloud-m.png +0 -0
  144. data/templates/foundation/images/fairhead-icons/fc-webicon-icloud-s.png +0 -0
  145. data/templates/foundation/images/fairhead-icons/fc-webicon-icloud.png +0 -0
  146. data/templates/foundation/images/fairhead-icons/fc-webicon-icloud.svg +26 -0
  147. data/templates/foundation/images/fairhead-icons/fc-webicon-linkedin-m.png +0 -0
  148. data/templates/foundation/images/fairhead-icons/fc-webicon-linkedin-s.png +0 -0
  149. data/templates/foundation/images/fairhead-icons/fc-webicon-linkedin.png +0 -0
  150. data/templates/foundation/images/fairhead-icons/fc-webicon-linkedin.svg +28 -0
  151. data/templates/foundation/images/fairhead-icons/fc-webicon-mail-m.png +0 -0
  152. data/templates/foundation/images/fairhead-icons/fc-webicon-mail-s.png +0 -0
  153. data/templates/foundation/images/fairhead-icons/fc-webicon-mail.png +0 -0
  154. data/templates/foundation/images/fairhead-icons/fc-webicon-mail.svg +27 -0
  155. data/templates/foundation/images/fairhead-icons/fc-webicon-msn-m.png +0 -0
  156. data/templates/foundation/images/fairhead-icons/fc-webicon-msn-s.png +0 -0
  157. data/templates/foundation/images/fairhead-icons/fc-webicon-msn.png +0 -0
  158. data/templates/foundation/images/fairhead-icons/fc-webicon-msn.svg +44 -0
  159. data/templates/foundation/images/fairhead-icons/fc-webicon-pinterest-m.png +0 -0
  160. data/templates/foundation/images/fairhead-icons/fc-webicon-pinterest-s.png +0 -0
  161. data/templates/foundation/images/fairhead-icons/fc-webicon-pinterest.png +0 -0
  162. data/templates/foundation/images/fairhead-icons/fc-webicon-pinterest.svg +42 -0
  163. data/templates/foundation/images/fairhead-icons/fc-webicon-rdio-m.png +0 -0
  164. data/templates/foundation/images/fairhead-icons/fc-webicon-rdio-s.png +0 -0
  165. data/templates/foundation/images/fairhead-icons/fc-webicon-rdio.png +0 -0
  166. data/templates/foundation/images/fairhead-icons/fc-webicon-rdio.svg +18 -0
  167. data/templates/foundation/images/fairhead-icons/fc-webicon-rss-m.png +0 -0
  168. data/templates/foundation/images/fairhead-icons/fc-webicon-rss-s.png +0 -0
  169. data/templates/foundation/images/fairhead-icons/fc-webicon-rss.png +0 -0
  170. data/templates/foundation/images/fairhead-icons/fc-webicon-rss.svg +18 -0
  171. data/templates/foundation/images/fairhead-icons/fc-webicon-skitch-m.png +0 -0
  172. data/templates/foundation/images/fairhead-icons/fc-webicon-skitch-s.png +0 -0
  173. data/templates/foundation/images/fairhead-icons/fc-webicon-skitch.png +0 -0
  174. data/templates/foundation/images/fairhead-icons/fc-webicon-skitch.svg +24 -0
  175. data/templates/foundation/images/fairhead-icons/fc-webicon-skype-m.png +0 -0
  176. data/templates/foundation/images/fairhead-icons/fc-webicon-skype-s.png +0 -0
  177. data/templates/foundation/images/fairhead-icons/fc-webicon-skype.png +0 -0
  178. data/templates/foundation/images/fairhead-icons/fc-webicon-skype.svg +25 -0
  179. data/templates/foundation/images/fairhead-icons/fc-webicon-spotify-m.png +0 -0
  180. data/templates/foundation/images/fairhead-icons/fc-webicon-spotify-s.png +0 -0
  181. data/templates/foundation/images/fairhead-icons/fc-webicon-spotify.png +0 -0
  182. data/templates/foundation/images/fairhead-icons/fc-webicon-spotify.svg +38 -0
  183. data/templates/foundation/images/fairhead-icons/fc-webicon-stumbleupon-m.png +0 -0
  184. data/templates/foundation/images/fairhead-icons/fc-webicon-stumbleupon-s.png +0 -0
  185. data/templates/foundation/images/fairhead-icons/fc-webicon-stumbleupon.png +0 -0
  186. data/templates/foundation/images/fairhead-icons/fc-webicon-stumbleupon.svg +22 -0
  187. data/templates/foundation/images/fairhead-icons/fc-webicon-tumblr-m.png +0 -0
  188. data/templates/foundation/images/fairhead-icons/fc-webicon-tumblr-s.png +0 -0
  189. data/templates/foundation/images/fairhead-icons/fc-webicon-tumblr.png +0 -0
  190. data/templates/foundation/images/fairhead-icons/fc-webicon-tumblr.svg +16 -0
  191. data/templates/foundation/images/fairhead-icons/fc-webicon-twitter-m.png +0 -0
  192. data/templates/foundation/images/fairhead-icons/fc-webicon-twitter-s.png +0 -0
  193. data/templates/foundation/images/fairhead-icons/fc-webicon-twitter.png +0 -0
  194. data/templates/foundation/images/fairhead-icons/fc-webicon-twitter.svg +24 -0
  195. data/templates/foundation/images/fairhead-icons/fc-webicon-vimeo-m.png +0 -0
  196. data/templates/foundation/images/fairhead-icons/fc-webicon-vimeo-s.png +0 -0
  197. data/templates/foundation/images/fairhead-icons/fc-webicon-vimeo.png +0 -0
  198. data/templates/foundation/images/fairhead-icons/fc-webicon-vimeo.svg +20 -0
  199. data/templates/foundation/images/fairhead-icons/fc-webicon-youtube-m.png +0 -0
  200. data/templates/foundation/images/fairhead-icons/fc-webicon-youtube-s.png +0 -0
  201. data/templates/foundation/images/fairhead-icons/fc-webicon-youtube.png +0 -0
  202. data/templates/foundation/images/fairhead-icons/fc-webicon-youtube.svg +106 -0
  203. data/templates/foundation/images/fairhead-icons/fc-webicon-youversion-m.png +0 -0
  204. data/templates/foundation/images/fairhead-icons/fc-webicon-youversion-s.png +0 -0
  205. data/templates/foundation/images/fairhead-icons/fc-webicon-youversion.png +0 -0
  206. data/templates/foundation/images/fairhead-icons/fc-webicon-youversion.svg +54 -0
  207. data/templates/foundation/images/fairhead-icons/fc-webicon-zerply-m.png +0 -0
  208. data/templates/foundation/images/fairhead-icons/fc-webicon-zerply-s.png +0 -0
  209. data/templates/foundation/images/fairhead-icons/fc-webicon-zerply.png +0 -0
  210. data/templates/foundation/images/fairhead-icons/fc-webicon-zerply.svg +20 -0
  211. data/templates/foundation/images/foundation/orbit/bullets.jpg +0 -0
  212. data/templates/foundation/images/foundation/orbit/left-arrow-small.png +0 -0
  213. data/templates/foundation/images/foundation/orbit/left-arrow.png +0 -0
  214. data/templates/foundation/images/foundation/orbit/loading.gif +0 -0
  215. data/templates/foundation/images/foundation/orbit/mask-black.png +0 -0
  216. data/templates/foundation/images/foundation/orbit/pause-black.png +0 -0
  217. data/templates/foundation/images/foundation/orbit/right-arrow-small.png +0 -0
  218. data/templates/foundation/images/foundation/orbit/right-arrow.png +0 -0
  219. data/templates/foundation/images/foundation/orbit/rotator-black.png +0 -0
  220. data/templates/foundation/images/foundation/orbit/timer-black.png +0 -0
  221. data/templates/foundation/index.php +19 -0
  222. data/templates/foundation/javascripts/app.js +38 -0
  223. data/templates/foundation/javascripts/foundation.min.js +77 -0
  224. data/templates/foundation/javascripts/jquery.foundation.accordion.js +39 -0
  225. data/templates/foundation/javascripts/jquery.foundation.alerts.js +20 -0
  226. data/templates/foundation/javascripts/jquery.foundation.buttons.js +79 -0
  227. data/templates/foundation/javascripts/jquery.foundation.clearing.js +480 -0
  228. data/templates/foundation/javascripts/jquery.foundation.forms.js +494 -0
  229. data/templates/foundation/javascripts/jquery.foundation.joyride.js +639 -0
  230. data/templates/foundation/javascripts/jquery.foundation.magellan.js +86 -0
  231. data/templates/foundation/javascripts/jquery.foundation.mediaQueryToggle.js +27 -0
  232. data/templates/foundation/javascripts/jquery.foundation.navigation.js +55 -0
  233. data/templates/foundation/javascripts/jquery.foundation.orbit.js +897 -0
  234. data/templates/foundation/javascripts/jquery.foundation.reveal.js +794 -0
  235. data/templates/foundation/javascripts/jquery.foundation.tabs.js +56 -0
  236. data/templates/foundation/javascripts/jquery.foundation.tooltips.js +193 -0
  237. data/templates/foundation/javascripts/jquery.foundation.topbar.js +156 -0
  238. data/templates/foundation/javascripts/modernizr.foundation.js +4 -0
  239. data/templates/foundation/languages/readme.txt +6 -0
  240. data/templates/foundation/license.txt +281 -0
  241. data/templates/foundation/loop.php +30 -0
  242. data/templates/foundation/manifest.rb +285 -0
  243. data/templates/foundation/options.php +43 -0
  244. data/templates/foundation/page.php +29 -0
  245. data/templates/foundation/print.css +1 -0
  246. data/templates/foundation/print.scss +1 -0
  247. data/templates/foundation/readme.txt +6 -0
  248. data/templates/foundation/sass/_app.scss +50 -0
  249. data/templates/foundation/sass/_settings.scss +243 -0
  250. data/templates/foundation/screen.scss +1 -0
  251. data/templates/foundation/screenshot.png +0 -0
  252. data/templates/foundation/search.php +31 -0
  253. data/templates/{starter → foundation}/search.png +0 -0
  254. data/templates/foundation/searchform.php +14 -0
  255. data/templates/foundation/sidebar.php +15 -0
  256. data/templates/foundation/single.php +31 -0
  257. data/templates/foundation/style.css +17 -0
  258. data/templates/foundation/stylesheets/fc-webicons.css +156 -0
  259. data/templates/foundation/tag.php +41 -0
  260. data/templates/project/404.php +24 -0
  261. data/templates/project/admin/README.txt +25 -0
  262. data/templates/project/admin/assets/css/admin-style.css +838 -0
  263. data/templates/project/admin/assets/css/colorpicker.css +177 -0
  264. data/templates/project/admin/assets/images/1col.png +0 -0
  265. data/templates/project/admin/assets/images/2-col-portfolio.png +0 -0
  266. data/templates/project/admin/assets/images/2cl.png +0 -0
  267. data/templates/project/admin/assets/images/2cr.png +0 -0
  268. data/templates/project/admin/assets/images/3-col-portfolio.png +0 -0
  269. data/templates/project/admin/assets/images/3cm.png +0 -0
  270. data/templates/project/admin/assets/images/3cr.png +0 -0
  271. data/templates/project/admin/assets/images/4-col-portfolio.png +0 -0
  272. data/templates/project/admin/assets/images/accept.png +0 -0
  273. data/templates/project/admin/assets/images/button_check.png +0 -0
  274. data/templates/project/admin/assets/images/colorpicker/blank.gif +0 -0
  275. data/templates/project/admin/assets/images/colorpicker/colorpicker_background.png +0 -0
  276. data/templates/project/admin/assets/images/colorpicker/colorpicker_hex.png +0 -0
  277. data/templates/project/admin/assets/images/colorpicker/colorpicker_hsb_b.png +0 -0
  278. data/templates/project/admin/assets/images/colorpicker/colorpicker_hsb_h.png +0 -0
  279. data/templates/project/admin/assets/images/colorpicker/colorpicker_hsb_s.png +0 -0
  280. data/templates/project/admin/assets/images/colorpicker/colorpicker_indic.gif +0 -0
  281. data/templates/project/admin/assets/images/colorpicker/colorpicker_overlay.png +0 -0
  282. data/templates/project/admin/assets/images/colorpicker/colorpicker_rgb_b.png +0 -0
  283. data/templates/project/admin/assets/images/colorpicker/colorpicker_rgb_g.png +0 -0
  284. data/templates/project/admin/assets/images/colorpicker/colorpicker_rgb_r.png +0 -0
  285. data/templates/project/admin/assets/images/colorpicker/colorpicker_select.gif +0 -0
  286. data/templates/project/admin/assets/images/colorpicker/colorpicker_submit.png +0 -0
  287. data/templates/project/admin/assets/images/colorpicker/select.png +0 -0
  288. data/templates/project/admin/assets/images/dropdown-arrow.png +0 -0
  289. data/templates/project/admin/assets/images/favicon.ico +0 -0
  290. data/templates/project/admin/assets/images/icon-add.png +0 -0
  291. data/templates/project/admin/assets/images/icon-backup.png +0 -0
  292. data/templates/project/admin/assets/images/icon-delete.png +0 -0
  293. data/templates/project/admin/assets/images/icon-docs.png +0 -0
  294. data/templates/project/admin/assets/images/icon-edit.png +0 -0
  295. data/templates/project/admin/assets/images/icon-home.png +0 -0
  296. data/templates/project/admin/assets/images/icon-info.png +0 -0
  297. data/templates/project/admin/assets/images/icon-notice.png +0 -0
  298. data/templates/project/admin/assets/images/icon-paint.png +0 -0
  299. data/templates/project/admin/assets/images/icon-settings.png +0 -0
  300. data/templates/project/admin/assets/images/icon-slider.png +0 -0
  301. data/templates/project/admin/assets/images/icon-warn.png +0 -0
  302. data/templates/project/admin/assets/images/icon_option.png +0 -0
  303. data/templates/project/admin/assets/images/loading-bottom.gif +0 -0
  304. data/templates/project/admin/assets/images/select.png +0 -0
  305. data/templates/project/admin/assets/images/sign_warning.png +0 -0
  306. data/templates/project/admin/assets/images/stop.png +0 -0
  307. data/templates/project/admin/assets/images/toggle_tabs.png +0 -0
  308. data/templates/project/admin/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  309. data/templates/project/admin/assets/images/warning.png +0 -0
  310. data/templates/project/admin/assets/images/wrench.png +0 -0
  311. data/templates/project/admin/assets/images/wrench16.png +0 -0
  312. data/templates/project/admin/assets/js/ajaxupload.js +606 -0
  313. data/templates/project/admin/assets/js/colorpicker.js +455 -0
  314. data/templates/project/admin/assets/js/cookie.js +1 -0
  315. data/templates/project/admin/assets/js/jquery.maskedinput-1.2.2.js +252 -0
  316. data/templates/project/admin/assets/js/jquery.tipsy.js +241 -0
  317. data/templates/project/admin/assets/js/of-medialibrary-uploader.js +168 -0
  318. data/templates/project/admin/assets/js/smof.js +623 -0
  319. data/templates/{starter → project}/admin/classes/class.options-machine.php +0 -0
  320. data/templates/project/admin/front-end/options.php +77 -0
  321. data/templates/project/admin/functions/functions.admin.php +76 -0
  322. data/templates/project/admin/functions/functions.interface.php +232 -0
  323. data/templates/project/admin/functions/functions.load.php +14 -0
  324. data/templates/{starter → project}/admin/functions/functions.mediauploader.php +0 -0
  325. data/templates/project/admin/functions/functions.options.php +508 -0
  326. data/templates/project/admin/functions/functions.php +0 -0
  327. data/templates/project/admin/index.php +87 -0
  328. data/templates/project/admin/layouts/default.css +0 -0
  329. data/templates/project/admin/layouts/placebo.css +0 -0
  330. data/templates/project/archive.php +57 -0
  331. data/templates/{starter → project}/category.php +0 -0
  332. data/templates/project/comments.php +65 -0
  333. data/templates/{starter → project}/content-aside.php +0 -0
  334. data/templates/{starter → project}/content-image.php +0 -0
  335. data/templates/{starter → project}/content-link.php +0 -0
  336. data/templates/{starter → project}/content-none.php +0 -0
  337. data/templates/project/content-page.php +24 -0
  338. data/templates/{starter → project}/content-quote.php +0 -0
  339. data/templates/{starter → project}/content-status.php +0 -0
  340. data/templates/project/content.php +67 -0
  341. data/templates/{starter → project}/editor-style.scss +0 -0
  342. data/templates/project/footer.php +29 -0
  343. data/templates/project/functions.php +1233 -0
  344. data/templates/project/header.php +63 -0
  345. data/templates/project/images/bg/bg0.png +0 -0
  346. data/templates/project/images/bg/bg1.png +0 -0
  347. data/templates/project/images/bg/bg10.png +0 -0
  348. data/templates/project/images/bg/bg11.png +0 -0
  349. data/templates/project/images/bg/bg2.png +0 -0
  350. data/templates/project/images/bg/bg3.png +0 -0
  351. data/templates/project/images/bg/bg4.png +0 -0
  352. data/templates/project/images/bg/bg5.png +0 -0
  353. data/templates/project/images/bg/bg6.jpg +0 -0
  354. data/templates/project/images/bg/bg7.jpg +0 -0
  355. data/templates/project/images/bg/bg8.png +0 -0
  356. data/templates/project/images/bg/bg9.png +0 -0
  357. data/templates/project/index.php +19 -0
  358. data/templates/project/javascripts/app.js +6 -0
  359. data/templates/{starter → project/javascripts}/moderninzr.min.js +0 -0
  360. data/templates/project/languages/readme.txt +6 -0
  361. data/templates/project/license.txt +281 -0
  362. data/templates/{starter → project}/loop.php +0 -0
  363. data/templates/project/manifest.rb +131 -4
  364. data/templates/project/options.php +42 -0
  365. data/templates/project/page.php +29 -0
  366. data/templates/project/readme.txt +6 -1
  367. data/templates/project/screenshot.png +0 -0
  368. data/templates/project/search.php +31 -0
  369. data/templates/project/searchform.php +14 -0
  370. data/templates/project/sidebar.php +15 -0
  371. data/templates/project/single.php +31 -0
  372. data/templates/project/style.css +5 -0
  373. data/templates/{starter → project}/tag.php +0 -0
  374. data/templates/starter/404.php +42 -19
  375. data/templates/starter/README.md +41 -0
  376. data/templates/starter/archive.php +89 -49
  377. data/templates/starter/comments.php +43 -32
  378. data/templates/starter/content-page.php +12 -16
  379. data/templates/starter/content-single.php +59 -0
  380. data/templates/starter/content.php +52 -58
  381. data/templates/starter/footer.php +20 -22
  382. data/templates/starter/functions.php +60 -1156
  383. data/templates/starter/header.php +31 -52
  384. data/templates/starter/image.php +111 -0
  385. data/templates/starter/inc/custom-header.php +184 -0
  386. data/templates/starter/inc/extras.php +79 -0
  387. data/templates/starter/inc/template-tags.php +175 -0
  388. data/templates/starter/inc/theme-options/theme-options.php +306 -0
  389. data/templates/starter/index.php +41 -11
  390. data/templates/starter/javascripts/html5.js +6 -0
  391. data/templates/starter/javascripts/keyboard-image-navigation.js +14 -0
  392. data/templates/starter/javascripts/small-menu.js +39 -0
  393. data/templates/starter/languages/readme.txt +6 -0
  394. data/templates/starter/layouts/content-sidebar-sidebar.css +27 -0
  395. data/templates/starter/layouts/content-sidebar.css +25 -0
  396. data/templates/starter/layouts/sidebar-content-sidebar.css +27 -0
  397. data/templates/starter/layouts/sidebar-content.css +25 -0
  398. data/templates/starter/layouts/sidebar-sidebar-content.css +22 -0
  399. data/templates/starter/license.txt +281 -0
  400. data/templates/starter/manifest.rb +22 -110
  401. data/templates/starter/no-results.php +34 -0
  402. data/templates/starter/page.php +16 -14
  403. data/templates/starter/print.scss +1 -104
  404. data/templates/starter/rtl.css +17 -0
  405. data/templates/starter/screen.scss +653 -1
  406. data/templates/starter/screenshot.png +0 -0
  407. data/templates/starter/search.php +31 -21
  408. data/templates/starter/searchform.php +8 -9
  409. data/templates/starter/sidebar.php +29 -10
  410. data/templates/starter/single.php +24 -21
  411. data/templates/starter/style.css +10 -6
  412. metadata +401 -100
  413. data/templates/project/print.css +0 -4
  414. data/templates/starter/admin/functions/functions.options.php +0 -507
  415. data/templates/starter/app.js +0 -97
  416. data/templates/starter/options.php +0 -407
  417. data/templates/starter/readme.txt +0 -1
@@ -0,0 +1,29 @@
1
+ <?php
2
+ /**
3
+ * The default template for displaying footer
4
+ *
5
+ * @category Theme
6
+ * @package [foundation]
7
+ * @author [Your Name]
8
+ * @copyright 2012 [Your Name]
9
+ */
10
+ ?>
11
+ </div>
12
+ <?php get_sidebar(); ?>
13
+ </section>
14
+ </div>
15
+ <footer class="footer twelve mobile-four columns" role="contentinfo">
16
+ <?php do_action( 'foundation_footer' ); ?>
17
+ <a href="<?php echo esc_url( __( 'http://wordpress.org/', 'foundation' ) ); ?>" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'foundation' ); ?>"><?php printf( __( 'Proudly powered by %s', 'foundation' ), 'WordPress' ); ?></a>
18
+ </footer>
19
+ </div>
20
+ <?php
21
+ /* Always have wp_footer() just before the closing </body>
22
+ * tag of your theme, or you will break many plugins, which
23
+ * generally use this hook to reference JavaScript files.
24
+ */
25
+
26
+ wp_footer();
27
+ ?>
28
+ </body>
29
+ </html>
@@ -0,0 +1,1425 @@
1
+ <?php
2
+ /**
3
+ * [foundation] theme functions and definitions
4
+ *
5
+ * For more information on hooks, actions, and filters, see http://codex.wordpress.org/Plugin_API.
6
+ *
7
+ * @category Theme
8
+ * @package [foundation]
9
+ * @author [Your Name]
10
+ * @copyright 2012 [Your Name]
11
+ */
12
+
13
+ global $of_options, $data;
14
+
15
+ /**
16
+ * Set the content width based on the theme's design and stylesheet.
17
+ *
18
+ * Used to set the width of images and content. Should be equal to the width the theme
19
+ * is designed for, generally via the style.css stylesheet.
20
+ */
21
+ if ( ! isset( $content_width ) )
22
+ $content_width = 540;
23
+
24
+ /**
25
+ * Sets up theme defaults and registers support for various WordPress features.
26
+ *
27
+ * Note that this function is hooked into the after_setup_theme hook, which runs
28
+ * before the init hook. The init hook is too late for some features, such as indicating
29
+ * support post thumbnails.
30
+ *
31
+ * To override foundation_setup() in a child theme, add your own foundation_setup to your child theme's
32
+ * functions.php file.
33
+ *
34
+ * @uses add_theme_support() To add support for post thumbnails, automatic feed links and Post Formats.
35
+ * @uses register_nav_menus() To add support for navigation menus.
36
+ * @uses add_custom_background() To add support for a custom background.
37
+ * @uses add_editor_style() To style the visual editor.
38
+ * @uses load_theme_textdomain() For translation/localization support.
39
+ * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
40
+ *
41
+ * @since [foundation] 1.0
42
+ */
43
+ function foundation_setup() {
44
+ // SET THEME LANGUAGES DIRECTORY
45
+ // Theme translations can be filed in the my_theme/languages/ directory
46
+ load_theme_textdomain( 'foundation', get_template_directory() . '/languages' );
47
+
48
+ // This theme styles the visual editor with editor-style.css to match the theme style.
49
+ add_editor_style( 'stylesheets/editor-style.css' );
50
+
51
+ // Adds support for rss links
52
+ add_theme_support( 'automatic-feed-links' );
53
+
54
+ // Add support for a variety of post formats (http://codex.wordpress.org/Post_Formats)
55
+ // Child Themes inherit the post formats defined by the parent theme
56
+ add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat' ) );
57
+
58
+ // Add post thumbnails (http://codex.wordpress.org/Post_Thumbnails)
59
+ add_theme_support( 'post-thumbnails' );
60
+ set_post_thumbnail_size( 540, 230, true ); // Default Thumbnail Image
61
+
62
+ // Register wp_nav_menu() menus (http://codex.wordpress.org/Function_Reference/register_nav_menus)
63
+ register_nav_menu( 'primary', __( 'Primary menu', 'foundation' ) );
64
+
65
+ /* Options Framework */
66
+ locate_template( 'options.php', true );
67
+ locate_template( 'admin/index.php', true );
68
+
69
+ do_action( 'foundation_setup' );
70
+ }
71
+
72
+ add_action( 'after_setup_theme', 'foundation_setup' );
73
+
74
+ /**
75
+ * Some cleanup
76
+ *
77
+ * @since [foundation] 1.0
78
+ * @return void
79
+ */
80
+ function foundation_init() {
81
+ // autolinks in comments
82
+ remove_filter( 'comment_text', 'make_clickable', 9 );
83
+
84
+ // Display the links to the general feeds: Post and Comment Feed
85
+ remove_action( 'wp_head', 'feed_links', 2 );
86
+
87
+ // Display the links to the extra feeds such as category feeds
88
+ remove_action( 'wp_head', 'feed_links_extra', 3 );
89
+
90
+ // Display the link to the Really Simple Discovery service endpoint, EditURI link
91
+ remove_action( 'wp_head', 'rsd_link' );
92
+
93
+ // Display the link to the Windows Live Writer manifest file.
94
+ remove_action( 'wp_head', 'wlwmanifest_link' );
95
+ remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
96
+
97
+ // index link
98
+ remove_action( 'wp_head', 'index_rel_link' );
99
+
100
+ // prev link
101
+ remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
102
+
103
+ // start link
104
+ remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
105
+
106
+ // Display relational links for the posts adjacent to the current post.
107
+ remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
108
+
109
+ // Display the XHTML generator that is generated on the wp_head hook, WP version
110
+ remove_action( 'wp_head', 'wp_generator' );
111
+ remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
112
+
113
+ // remove jetpack open graph tags
114
+ remove_action( 'wp_head', 'jetpack_og_tags' );
115
+
116
+ add_filter( 'use_default_gallery_style', '__return_null' );
117
+
118
+ /* Custom oEmbed Providers */
119
+
120
+ // Add Soundcloud oEmbed
121
+ wp_oembed_add_provider( '#http://(www\.)?soundcloud\.com/.*#i', 'http://soundcloud.com/oembed', true );
122
+
123
+ // Add Kickstarter oEmbed
124
+ wp_oembed_add_provider( '#http://(www\.)?kickstarter\.com/projects/.*#i', 'http://www.kickstarter.com/services/oembed', true );
125
+
126
+ // Add Instagram oEmbed
127
+ wp_oembed_add_provider( '#http://(www\.)?instagr(am)?\.(am|com)/.*#i', 'http://api.instagram.com/oembed', true );
128
+
129
+ // Add Slideshare oEmbed
130
+ wp_oembed_add_provider( '#http://(www\.)?slideshare\.net/.*#i', 'http://api.embed.ly/v1/api/oembed', true );
131
+ }
132
+
133
+ add_action( 'init', 'foundation_init' );
134
+
135
+ /**
136
+ * Remove the WordPress version from RSS feeds
137
+ */
138
+ add_filter( 'the_generator', '__return_false' );
139
+
140
+ /**
141
+ * Adds custom scripts to theme header
142
+ *
143
+ * @since [foundation] 1.0
144
+ * @return void
145
+ */
146
+ function foundation_enqueue_scripts() {
147
+ $theme = wp_get_theme();
148
+ $version = $theme['Version'];
149
+
150
+ wp_deregister_script( 'jquery' );
151
+ wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js', false, '1.8.3' );
152
+
153
+ /**
154
+ * We add some JavaScript to pages with the comment form
155
+ * to support sites with threaded comments (when in use).
156
+ */
157
+ if ( is_singular() and comments_open() and get_option( 'thread_comments' ) ) {
158
+ wp_enqueue_script( 'comment-reply' );
159
+ }
160
+
161
+ wp_enqueue_script( 'modernizr', get_template_directory_uri() . '/javascripts/modernizr.foundation.js', false, '2.6.2' );
162
+
163
+ // Foundation scripts
164
+
165
+ /* Minified */
166
+ // wp_enqueue_script( 'foundation', get_template_directory_uri() . '/assets/js/libs/foundation.min.js', array( 'jquery' ), '3.0', true );
167
+
168
+ /* Unminified */
169
+ wp_enqueue_script( 'mediaquery', get_template_directory_uri() . '/javascripts/jquery.foundation.mediaQueryToggle.js', array( 'jquery' ), '3.0', true );
170
+ wp_enqueue_script( 'forms', get_template_directory_uri() . '/javascripts/jquery.foundation.forms.js', array( 'jquery' ), '3.0', true );
171
+ wp_enqueue_script( 'reveal', get_template_directory_uri() . '/javascripts/jquery.foundation.reveal.js', array( 'jquery' ), '3.0', true );
172
+ wp_enqueue_script( 'orbit', get_template_directory_uri() . '/javascripts/jquery.foundation.orbit.js', array( 'jquery' ), '3.0', true );
173
+ wp_enqueue_script( 'navigation', get_template_directory_uri() . '/javascripts/jquery.foundation.navigation.js', array( 'jquery' ), '3.0', true );
174
+ wp_enqueue_script( 'buttons', get_template_directory_uri() . '/javascripts/jquery.foundation.buttons.js', array( 'jquery' ), '3.0', true );
175
+ wp_enqueue_script( 'tabs', get_template_directory_uri() . '/javascripts/jquery.foundation.tabs.js', array( 'jquery' ), '3.0', true );
176
+ wp_enqueue_script( 'tooltips', get_template_directory_uri() . '/javascripts/jquery.foundation.tooltips.js', array( 'jquery' ), '3.0', true );
177
+ wp_enqueue_script( 'accordion', get_template_directory_uri() . '/javascripts/jquery.foundation.accordion.js', array( 'jquery' ), '3.0', true );
178
+ wp_enqueue_script( 'placeholder', get_template_directory_uri() . '/javascripts/jquery.placeholder.js', array( 'jquery' ), '3.0', true );
179
+ wp_enqueue_script( 'alerts', get_template_directory_uri() . '/javascripts/jquery.foundation.alerts.js', array( 'jquery' ), '3.0', true );
180
+ wp_enqueue_script( 'topbar', get_template_directory_uri() . '/javascripts/jquery.foundation.topbar.js', array( 'jquery' ), '3.0', true );
181
+ wp_enqueue_script( 'clearing', get_template_directory_uri() . '/javascripts/jquery.foundation.clearing.js', array( 'jquery' ), '3.0', true );
182
+
183
+ wp_enqueue_script( 'app', get_template_directory_uri() . '/javascripts/app.js', array( 'jquery' ), $version, true );
184
+ }
185
+
186
+ add_action( 'wp_enqueue_scripts', 'foundation_enqueue_scripts' );
187
+
188
+ /**
189
+ * Adds custom styles to theme header
190
+ *
191
+ * @since [foundation] 1.0
192
+ * @return void
193
+ */
194
+ function foundation_enqueue_styles() {
195
+ $theme = wp_get_theme();
196
+ $version = $theme['Version'];
197
+
198
+ wp_enqueue_style( 'fc-webicons', get_template_directory_uri() . '/stylesheets/fc-webicons.css', false, '2.0', 'all' );
199
+
200
+ wp_enqueue_style( 'app', get_stylesheet_uri(), false, $version, 'all' );
201
+ }
202
+
203
+ add_action( 'wp_enqueue_scripts', 'foundation_enqueue_styles' );
204
+
205
+ /**
206
+ * Makes some changes to the <title> tag, by filtering the output of wp_title().
207
+ *
208
+ * If we have a site description and we're viewing the home page or a blog posts
209
+ * page (when using a static front page), then we will add the site description.
210
+ *
211
+ * If we're viewing a search result, then we're going to recreate the title entirely.
212
+ * We're going to add page numbers to all titles as well, to the middle of a search
213
+ * result title and the end of all other titles.
214
+ *
215
+ * The site title also gets added to all titles.
216
+ *
217
+ * @since [foundation] 1.0
218
+ *
219
+ * @param string $title Title generated by wp_title()
220
+ * @param string $separator The separator passed to wp_title(). Base theme uses a vertical bar, "|", as a separator in header.php.
221
+ * @return string The new title, ready for the <title> tag.
222
+ */
223
+ function foundation_filter_wp_title( $title, $separator ) {
224
+ // Don't affect wp_title() calls in feeds.
225
+ if ( is_feed() or function_exists( 'get_wpseo_options' ) )
226
+ return $title;
227
+
228
+ // The $paged global variable contains the page number of a listing of posts.
229
+ // The $page global variable contains the page number of a single post that is paged.
230
+ // We'll display whichever one applies, if we're not looking at the first page.
231
+ global $paged, $page, $post;
232
+
233
+ if ( is_search() ) {
234
+ // If we're a search, let's start over:
235
+ $title = sprintf( __( 'Search results for %s', 'foundation' ), '"' . get_search_query() . '"' );
236
+ // Add a page number if we're on page 2 or more:
237
+ if ( $paged >= 2 ) {
238
+ $title .= " $separator " . sprintf( __( 'Page %s', 'foundation' ), $paged );
239
+ }
240
+ // Add the site name to the end:
241
+ $title .= " $separator " . get_bloginfo( 'name', 'display' );
242
+ // We're done. Let's send the new title back to wp_title():
243
+ return $title;
244
+ }
245
+
246
+ $return = array();
247
+
248
+ if ( $title != '' ) {
249
+ $return[] = str_replace( " $separator ", '', apply_filters( 'the_category', $title ) );
250
+ }
251
+
252
+ if ( is_single() ) {
253
+ if ( get_post_meta( $post->ID, 'title', true ) ) {
254
+ $return[] = stripslashes( get_post_meta( $post->ID, 'seo_title', true ) );
255
+ }
256
+ elseif ( ! in_array( $post->post_type, array( 'post', 'page', 'attachment' ) ) ) {
257
+ $post_type_obj = get_post_type_object( $post->post_type );
258
+ $return[] = apply_filters( 'post_type_archive_title', $post_type_obj->labels->name );
259
+ }
260
+ }
261
+
262
+ // Add a page number if necessary:
263
+ if ( $paged >= 2 or $page >= 2 ) {
264
+ $return[] = sprintf( __( 'Page %s', 'foundation' ), max( $paged, $page ) );
265
+ }
266
+
267
+ // Add the site name to the end:
268
+ $return[] = get_bloginfo( 'name', 'display' );
269
+
270
+ // If we have a site description and we're on the home/front page, add the description:
271
+ $site_description = get_bloginfo( 'description', 'display' );
272
+ if ( $site_description and ( is_home() or is_front_page() ) ) {
273
+ $return[] = $site_description;
274
+ }
275
+
276
+ // Return the new title to wp_title():
277
+ return implode( " $separator ", $return );
278
+ }
279
+
280
+ add_filter( 'wp_title', 'foundation_filter_wp_title', 10, 3 );
281
+
282
+ /**
283
+ * Adds code to header
284
+ *
285
+ * @since [foundation] 1.0
286
+ * @return string misc
287
+ */
288
+ function foundation_header() {
289
+ ?>
290
+ <!-- For third-generation iPad with high-resolution Retina display: -->
291
+ <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144-precomposed.png?1333401433">
292
+ <!-- For iPhone with high-resolution Retina display: -->
293
+ <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114-precomposed.png?1333401433">
294
+ <!-- For first- and second-generation iPad: -->
295
+ <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72-precomposed.png?1333401433">
296
+ <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
297
+ <link rel="apple-touch-icon-precomposed" href="apple-touch-icon-precomposed.png?1333401433">
298
+ <!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
299
+ <link rel="shortcut icon" href="favicon.ico?1333401433" type="image/x-icon" />
300
+ <?php
301
+ do_action( 'foundation_header' );
302
+ }
303
+
304
+ add_action( 'wp_head', 'foundation_header', 10 );
305
+
306
+ /**
307
+ * Adds code to footer
308
+ *
309
+ * @since [foundation] 1.0
310
+ * @return string misc
311
+ */
312
+ function foundation_footer() {}
313
+
314
+ add_action( 'wp_footer', 'foundation_footer', 10 );
315
+
316
+ /**
317
+ * Defines widget areas
318
+ *
319
+ * @since [foundation] 1.0
320
+ * @return void
321
+ */
322
+ function foundation_widgets_init() {
323
+ register_sidebar(
324
+ array(
325
+ 'name' => __( 'Primary widget area', 'foundation' ),
326
+ 'id' => 'primary-widget-area',
327
+ 'description' => __( '', 'foundation' ),
328
+ 'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
329
+ 'after_widget' => '</li>',
330
+ 'before_title' => '<h3 class="widget-title">',
331
+ 'after_title' => '</h3>',
332
+ )
333
+ );
334
+ }
335
+
336
+ add_action( 'widgets_init', 'foundation_widgets_init' );
337
+
338
+ /**
339
+ * Clean up output of stylesheet <link> tags
340
+ *
341
+ * @since [foundation] 1.0
342
+ */
343
+ function foundation_clean_style_tag( $input ) {
344
+ preg_match_all( "!<link rel='stylesheet'\s?(id='[^']+')?\s+href='(.*)' type='text/css' media='(.*)' />!", $input, $matches );
345
+ // Only display media if it's print
346
+ $media = $matches[3][0] == 'print' ? ' media="print"' : '';
347
+
348
+ return '<link rel="stylesheet" href="' . $matches[ 2 ][ 0 ] . '"' . $media . '>' . "\n";
349
+ }
350
+
351
+ add_filter( 'style_loader_tag', 'foundation_clean_style_tag' );
352
+
353
+ /**
354
+ * Remove unnecessary self-closing tags
355
+ *
356
+ * @since [foundation] 1.0
357
+ */
358
+ function foundation_remove_self_closing_tags( $input ) {
359
+ return str_replace( ' />', '>', $input );
360
+ }
361
+
362
+ add_filter( 'get_avatar', 'foundation_remove_self_closing_tags' ); // <img />
363
+ add_filter( 'comment_id_fields', 'foundation_remove_self_closing_tags' ); // <input />
364
+ add_filter( 'post_thumbnail_html', 'foundation_remove_self_closing_tags' ); // <img />
365
+
366
+ /**
367
+ * Wrap embedded media as suggested by Readability
368
+ *
369
+ * @link https://gist.github.com/965956
370
+ * @link http://www.readability.com/publishers/guidelines#publisher
371
+ * @since [foundation] 1.0
372
+ */
373
+ function foundation_embed_wrap( $cache, $url, $attr = '', $post_ID = '' ) {
374
+ return '<div class="entry-content-asset">' . $cache . '</div>';
375
+ }
376
+
377
+ add_filter( 'embed_oembed_html', 'foundation_embed_wrap', 10, 4 );
378
+ add_filter( 'embed_googlevideo', 'foundation_embed_wrap', 10, 2 );
379
+
380
+ /**
381
+ * Remove height/width attributes on images so they can be responsive
382
+ *
383
+ * @since [foundation] 1.0
384
+ */
385
+ function foundation_remove_thumbnail_dimensions( $html, $id, $alt, $title ) {
386
+ return preg_replace(
387
+ array(
388
+ '/\s+width="\d+"/i',
389
+ '/\s+height="\d+"/i',
390
+ '/alt=""/i',
391
+ ),
392
+ array(
393
+ '',
394
+ '',
395
+ '',
396
+ 'alt="' . $title . '"',
397
+ ),
398
+ $html
399
+ );
400
+ }
401
+
402
+ add_filter( 'post_thumbnail_html', 'foundation_remove_thumbnail_dimensions', 10, 4 );
403
+ add_filter( 'image_send_to_editor', 'foundation_remove_thumbnail_dimensions', 10, 4 );
404
+ add_filter( 'get_image_tag', 'foundation_remove_thumbnail_dimensions', 10, 4 );
405
+ add_filter( 'foundation_shortcode_caption_content', 'foundation_remove_thumbnail_dimensions', 10, 4 );
406
+
407
+ /**
408
+ * Clean the output of attributes of images in editor.
409
+ *
410
+ * @link http://www.sitepoint.com/wordpress-change-img-tag-html/
411
+ * @since [foundation] 1.0
412
+ */
413
+ function foundation_image_tag_class( $class, $id, $align, $size ) {
414
+ $align = 'align' . esc_attr( $align );
415
+ return $align;
416
+ }
417
+
418
+ add_filter( 'get_image_tag_class', 'foundation_image_tag_class', 0, 4 );
419
+
420
+ /**
421
+ * Add thumbnail class to thumbnail links
422
+ *
423
+ * @since [foundation] 1.0
424
+ */
425
+ function foundation_add_class_attachment_link( $html ) {
426
+ $postid = get_the_ID();
427
+ $html = str_replace( '<a', '<a class="th"', $html );
428
+
429
+ return $html;
430
+ }
431
+
432
+ add_filter( 'wp_get_attachment_link', 'foundation_add_class_attachment_link', 10, 1 );
433
+ add_filter( 'foundation_shortcode_caption_content', 'foundation_add_class_attachment_link', 10, 1 );
434
+
435
+ /**
436
+ * Filter in a link to a content ID attribute for the next/previous image links on image attachment pages
437
+ *
438
+ * @since [foundation] 1.0
439
+ */
440
+ function foundation_enhanced_image_navigation( $url, $id ) {
441
+ if ( ! is_attachment() && ! wp_attachment_is_image( $id ) )
442
+ return $url;
443
+
444
+ $image = get_post( $id );
445
+ if ( ! empty( $image->post_parent ) && $image->post_parent != $id )
446
+ $url .= '#main';
447
+
448
+ return $url;
449
+ }
450
+
451
+ add_filter( 'attachment_link', 'foundation_enhanced_image_navigation', 10, 2 );
452
+
453
+ /**
454
+ * Replace various active menu class names with "active"
455
+ * Remove the id="" on nav menu items
456
+ * Return 'menu-slug' for nav menu classes
457
+ *
458
+ * @since [foundation] 1.0
459
+ */
460
+ function foundation_wp_nav_menu_class( $classes, $item ) {
461
+ $slug = sanitize_title( $item->title );
462
+ $classes = preg_replace( '/(current(-menu-|[-_]page[-_])(item|parent|ancestor))/', 'active', $classes );
463
+ $classes = preg_replace( '/^((menu|page)[-_\w+]+)+/', '', $classes );
464
+
465
+ $classes[] = 'menu-' . $slug;
466
+
467
+ return array_filter( array_unique( $classes ), 'is_element_empty' );
468
+ }
469
+
470
+ add_filter( 'nav_menu_css_class', 'foundation_wp_nav_menu_class', 10, 2 );
471
+ add_filter( 'nav_menu_item_id', '__return_null' );
472
+
473
+ /**
474
+ * Check if $element is empty
475
+ *
476
+ * @since [foundation] 1.0
477
+ */
478
+ function is_element_empty( $element ) {
479
+ $element = trim( $element );
480
+
481
+ return ( bool ) ! empty( $element );
482
+ }
483
+
484
+ /**
485
+ * Create a graceful fallback to wp_page_menu
486
+ *
487
+ * @since [foundation] 1.0
488
+ */
489
+ function foundation_page_menu() {
490
+ $args = array(
491
+ 'sort_column' => 'menu_order, post_title',
492
+ 'menu_class' => 'side-nav two mobile-four columns',
493
+ 'include' => '',
494
+ 'exclude' => '',
495
+ 'echo' => true,
496
+ 'show_home' => false,
497
+ 'link_before' => '',
498
+ 'link_after' => '',
499
+ );
500
+
501
+ wp_page_menu( $args );
502
+ }
503
+
504
+ /**
505
+ * Navigation Menu Adjustments
506
+ *
507
+ * @since [foundation] 1.0
508
+ */
509
+ class Foundation_Navigation extends Walker_Nav_Menu {
510
+ function start_lvl( &$output, $depth ) {
511
+ $indent = str_repeat( "\t", $depth );
512
+ $output .= "\n$indent<ul class=\"flyout\">\n";
513
+ }
514
+
515
+ function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
516
+ $id_field = $this->db_fields['id'];
517
+ if ( ! empty( $children_elements[ $element->$id_field ] ) ) {
518
+ $element->classes[] = 'has-flyout';
519
+ }
520
+ Walker_Nav_Menu::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
521
+ }
522
+ }
523
+
524
+ /**
525
+ * Adds extra info to language attributes string
526
+ *
527
+ * @since [foundation] 1.0
528
+ */
529
+ function foundation_language_attributes() {
530
+ $attr = array();
531
+ $output = '';
532
+
533
+ if ( function_exists( 'is_rtl' ) ) {
534
+ if ( is_rtl() == 'rtl' ) {
535
+ $attr[] = 'dir="rtl"';
536
+ }
537
+ }
538
+
539
+ $lang = get_bloginfo( 'language' );
540
+
541
+ if ( $lang and $lang !== 'en-US' ) {
542
+ $attr[] = "lang=\"$lang\"";
543
+ }
544
+ else {
545
+ $attr[] = 'lang="en"';
546
+ }
547
+
548
+ return implode( ' ', $attr );
549
+ }
550
+
551
+ add_filter( 'language_attributes', 'foundation_language_attributes' );
552
+
553
+ /**
554
+ * remove the p from around imgs
555
+ *
556
+ * @link https://gist.github.com/975026
557
+ * @since [foundation] 1.0
558
+ */
559
+ function foundation_filter_ptags_on_images( $content ) {
560
+ // Replace br tags inside figures
561
+ $content = preg_replace( '/(<figure .*>)?<br\s?\/?>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*/iU', '\1\2\3\4', $content );
562
+ // do a regular expression replace...
563
+ // find all p tags that have just
564
+ // <p>maybe some white space<img all stuff up to /> then maybe whitespace </p>
565
+ // replace it with just the image tag...
566
+ $content = preg_replace( '/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content );
567
+ // now pass that through and do the same for iframes...
568
+ return preg_replace( '/<p>\s*(<iframe .*>*.<\/iframe>)\s*<\/p>/iU', '\1', $content );
569
+ }
570
+
571
+ add_filter( 'the_content', 'foundation_filter_ptags_on_images' );
572
+
573
+ /**
574
+ * Adds browser detection body class
575
+ * Adds extra classes to body tag on custom taxonomies
576
+ *
577
+ * @since [foundation] 1.0
578
+ */
579
+ function foundation_body_classes( $classes ) {
580
+ global $wp_query, $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
581
+
582
+ if ( isset( $wp_query->query_vars['taxonomy'] ) or isset( $wp_query->query_vars['term'] ) ) {
583
+ array_push( $classes, 'custom-taxonomy-archive', 'custom-taxonomy-' . ( isset( $wp_query->query_vars[ 'taxonomy' ] ) ? get_query_var( 'taxonomy' ) : get_query_var( 'term' ) ) . '-archive' );
584
+ }
585
+
586
+ if ( $is_lynx ) $classes[] = 'lynx';
587
+ elseif ( $is_gecko ) $classes[] = 'gecko';
588
+ elseif ( $is_opera ) $classes[] = 'opera';
589
+ elseif ( $is_NS4 ) $classes[] = 'ns4';
590
+ elseif ( $is_safari ) $classes[] = 'safari';
591
+ elseif ( $is_chrome ) $classes[] = 'chrome';
592
+ elseif ( $is_IE ) $classes[] = 'ie';
593
+ else $classes[] = 'unknown';
594
+
595
+ if ( $is_iphone ) $classes[] = 'iphone';
596
+
597
+ // Add post/page slug
598
+ if ( is_single() or is_page() and ! is_front_page() ) {
599
+ $classes[] = basename( get_permalink() );
600
+ }
601
+
602
+ // Remove unnecessary classes
603
+ $home_id_class = 'page-id-' . get_option( 'page_on_front' );
604
+ $remove_classes = array(
605
+ 'page-template-default',
606
+ $home_id_class,
607
+ );
608
+
609
+ $classes = array_diff( $classes, $remove_classes );
610
+
611
+ return $classes;
612
+ }
613
+
614
+ add_filter( 'body_class', 'foundation_body_classes' );
615
+
616
+ /**
617
+ * Modifies output of custom post formats.
618
+ *
619
+ * @since [foundation] 1.0
620
+ */
621
+ function foundation_custom_content( $content ) {
622
+ /* Check if we're displaying a 'quote' post. */
623
+ if ( has_post_format( 'quote' ) ) {
624
+ /* Match any <blockquote> elements. */
625
+ preg_match( '/<blockquote.*?>/', $content, $matches );
626
+
627
+ /* If no <blockquote> elements were found, wrap the entire content in one. */
628
+ if ( empty( $matches ) ) {
629
+ $content = "<blockquote>{$content}</blockquote>";
630
+ }
631
+ }
632
+ elseif ( has_post_format( 'aside' ) and ! is_singular() ) {
633
+ preg_match( '/<p>(.*?)<\/p>(?!\s*<p>)/', $content, $matches );
634
+
635
+ $content = str_replace( $matches[1], $matches[1] . ' <a href="' . get_permalink() . '">&#8734;</a>', $content );
636
+ }
637
+
638
+ return $content;
639
+ }
640
+
641
+ add_filter( 'the_content', 'foundation_custom_content' );
642
+
643
+ /**
644
+ * Remove <p> and <br /> in the shortcodes
645
+ *
646
+ * @since [foundation] 1.0
647
+ */
648
+ function foundation_shortcode_empty_paragraph_fix( $content ) {
649
+ $array = array(
650
+ '<p>[' => '[',
651
+ ']</p>' => ']',
652
+ ']<br />' => ']',
653
+ );
654
+
655
+ // replace the strings in the $content
656
+ $content = strtr( $content, $array );
657
+
658
+ return $content;
659
+ }
660
+
661
+ add_filter( 'the_content', 'foundation_shortcode_empty_paragraph_fix' );
662
+
663
+ /**
664
+ * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
665
+ *
666
+ * Create your own foundation_entry_meta() to override in a child theme.
667
+ *
668
+ * @since [foundation] 1.0
669
+ */
670
+ function foundation_entry_meta() {
671
+ // Translators: used between list items, there is a space after the comma.
672
+ $categories_list = get_the_category_list( __( ', ', 'foundation' ) );
673
+
674
+ // Translators: used between list items, there is a space after the comma.
675
+ $tag_list = get_the_tag_list( '', __( ', ', 'foundation' ) );
676
+
677
+ $date = sprintf(
678
+ '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a>',
679
+ esc_url( get_permalink() ),
680
+ esc_attr( get_the_time() ),
681
+ esc_attr( get_the_date( 'c' ) ),
682
+ esc_html( get_the_date() )
683
+ );
684
+
685
+ $author = sprintf(
686
+ '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
687
+ esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
688
+ esc_attr( sprintf( __( 'View all posts by %s', 'foundation' ), get_the_author() ) ),
689
+ get_the_author()
690
+ );
691
+
692
+ // Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
693
+ if ( $tag_list ) {
694
+ $utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'foundation' );
695
+ }
696
+ elseif ( $categories_list ) {
697
+ $utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'foundation' );
698
+ }
699
+ else {
700
+ $utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'foundation' );
701
+ }
702
+
703
+ printf(
704
+ $utility_text,
705
+ $categories_list,
706
+ $tag_list,
707
+ $date,
708
+ $author
709
+ );
710
+ }
711
+
712
+ /**
713
+ * Returns a "Continue Reading" link for excerpts
714
+ *
715
+ * @since [foundation] 1.0
716
+ */
717
+ function foundation_continue_reading_link() {
718
+ $read_more_link = ' <a href="' . get_permalink() . '" class="more-link">' . __( 'Continue reading', 'foundation' ) . '</a>';
719
+
720
+ return $read_more_link;
721
+ }
722
+
723
+ /**
724
+ * Replaces "[...]" (appended to automatically generated excerpts ) with foundation_continue_reading_link().
725
+ *
726
+ * To override this in a child theme, remove the filter and add your own
727
+ * function tied to the excerpt_more filter hook.
728
+ *
729
+ * @since [foundation] 1.0
730
+ */
731
+ function foundation_auto_excerpt_more( $more ) {
732
+ return foundation_continue_reading_link();
733
+ }
734
+
735
+ add_filter( 'excerpt_more', 'foundation_auto_excerpt_more' );
736
+ add_filter( 'the_content_more_link', 'foundation_auto_excerpt_more' );
737
+
738
+ /**
739
+ * Adds a pretty "Continue Reading" link to custom post excerpts.
740
+ *
741
+ * To override this link in a child theme, remove the filter and add your own
742
+ * function tied to the get_the_excerpt filter hook.
743
+ *
744
+ * @since [foundation] 1.0
745
+ */
746
+ function foundation_custom_excerpt_more( $output ) {
747
+ if ( has_excerpt() and ! is_attachment() ) {
748
+ $output .= foundation_continue_reading_link();
749
+ }
750
+ return $output;
751
+ }
752
+
753
+ add_filter( 'get_the_excerpt', 'foundation_custom_excerpt_more' );
754
+
755
+ /**
756
+ * Adds nofollow rel atribute to content links
757
+ *
758
+ * @since [foundation] 1.0
759
+ */
760
+ function foundation_nofollow_links_in_post( $text ) {
761
+ global $post;
762
+
763
+ if ( get_post_meta( $post->ID, 'nofollow_links', true ) ) {
764
+ preg_match_all( '/<a.*? href=\"(.*? )\".*?>(.*? )<\/a>/i', $text, $links );
765
+ $match_count = count( $links[0] );
766
+
767
+ for ( $i = 0; $i < $match_count; ++$i ) {
768
+ if ( ! preg_match( '/rel=[\"\']*nofollow[\"\']*/', $links[0][$i] ) ) {
769
+ preg_match_all( '/<a.*? href=\"(.*? )\"(.*? )>(.*? )<\/a>/i', $links[0][$i], $link_text );
770
+
771
+ $search = '>'.$link_text[3][0].'</a>';
772
+ $replace = ' rel="nofollow">'.$link_text[3][0].'</a>';
773
+
774
+ $text = str_replace( $search, $replace, $text );
775
+ }
776
+ }
777
+ }
778
+
779
+ return $text;
780
+ }
781
+
782
+ add_action( 'the_content', 'foundation_nofollow_links_in_post' );
783
+
784
+ /**
785
+ * Custom tag clould args
786
+ *
787
+ * @since [foundation] 1.0
788
+ */
789
+ function foundation_widget_tag_cloud_args( $args ) {
790
+ $args['number'] = 20; // show less tags
791
+ $args['largest'] = 13; // make largest and smallest the same
792
+ $args['smallest'] = 13;
793
+ $args['unit'] = 'px';
794
+ $args['format'] = 'list'; // ul with a class of wp-tag-cloud
795
+ // $args['exclude'] = array(20, 80, 92); // exclude tags by ID
796
+ // $args['taxonomy'] = array('post_tag', 'ingredients'); // add post tags and ingredients taxonomy
797
+
798
+ return $args;
799
+ }
800
+
801
+ add_filter( 'widget_tag_cloud_args', 'foundation_widget_tag_cloud_args' );
802
+
803
+ /**
804
+ * Filter tag clould output so that it can be styled by CSS
805
+ *
806
+ * @since [foundation] 1.0
807
+ */
808
+ function foundation_add_tag_class( $taglinks ) {
809
+ $tags = explode( '</a>', $taglinks );
810
+ $regex = "#(.*tag-link[-])(.*)(' title.*)#e";
811
+ foreach ( $tags as $tag ) {
812
+ $tagn[] = preg_replace( $regex, "('$1$2 label tag-'.get_tag($2)->slug.'$3')", $tag );
813
+ }
814
+
815
+ return implode( '</a>', $tagn );
816
+ }
817
+
818
+ add_filter( 'wp_tag_cloud', 'foundation_add_tag_class' );
819
+
820
+ /**
821
+ * Outputs WP Pagenavi pagination or wordpress navigation
822
+ *
823
+ * @since [foundation] 1.0
824
+ */
825
+ function pagination( $query = false ) {
826
+ global $wp_query;
827
+
828
+ if ( is_single() ) {
829
+ ?>
830
+ <nav id="comment-nav-below" class="navigation" role="navigation">
831
+ <h1 class="assistive-text section-heading"><?php _e( 'Post Navigation', 'foundation' ); ?></h1>
832
+ <?php
833
+ if ( $previous = get_previous_post() ):?>
834
+ <div class="nav-previous alignleft">
835
+ <a href="<?php echo get_permalink( $previous );?>" title="<?php printf( __( 'Permalink to %s', 'foundation' ), get_the_title( $previous ) );?>"><?php _e( 'Previous', 'foundation' ); ?></a>
836
+ </div>
837
+ <?php endif;?>
838
+ <?php
839
+ if ( $next = get_next_post() ):?>
840
+ <div class="nav-next alignright">
841
+ <a href="<?php echo get_permalink( $next );?>" title="<?php printf( __( 'Permalink to %s', 'foundation' ), get_the_title( $next ) );?>"><?php _e( 'Next', 'foundation' ); ?></a>
842
+ </div>
843
+ <?php endif;?>
844
+ </nav>
845
+ <?php
846
+ } else {
847
+ if ( $wp_query->max_num_pages > 1 ) {
848
+ if ( function_exists( 'wp_pagenavi' ) ) {
849
+ $args = array( 'options' => PageNavi_Core::$options->get_defaults() );
850
+
851
+ if ( $query ) {
852
+ $args[ 'query' ] = $query;
853
+ }
854
+
855
+ wp_pagenavi( $args );
856
+ } else {
857
+ //get_template_part( 'templates/pager' );
858
+ $big = 999999999; // This needs to be an unlikely integer
859
+
860
+ // For more options and info view the docs for paginate_links()
861
+ // http://codex.wordpress.org/Function_Reference/paginate_links
862
+ $paginate_links = paginate_links(
863
+ array(
864
+ 'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) ),
865
+ 'current' => max( 1, get_query_var( 'paged' ) ),
866
+ 'total' => $wp_query->max_num_pages,
867
+ 'mid_size' => 5,
868
+ 'prev_next' => True,
869
+ 'prev_text' => __( '&larr;' ),
870
+ 'next_text' => __( '&rarr;' ),
871
+ 'type' => 'array',
872
+ )
873
+ );
874
+
875
+ // Display the pagination if more than one page is found
876
+ if ( $paginate_links ) {
877
+ foreach ( $paginate_links as $link ) {
878
+ if ( strpos( $link, 'prev' ) !== false or strpos( 'next', $link ) !== false ) {
879
+ $links[] = '<li class="arrow">' . $link . '</li>';
880
+ }
881
+ elseif ( strpos( $link, 'current' ) !== false ) {
882
+ preg_match( '/<span[^>]+>(\d+)<\/span>/i', $link , $m );
883
+
884
+ $links[] = '<li class="current"><a href="">' . $m[1] . '</a></li>';
885
+ }
886
+ else {
887
+ $links[] = '<li>' . $link . '</li>';
888
+ }
889
+ }
890
+
891
+
892
+ echo '<ul class="pagination">';
893
+ echo implode( "\n", $links );
894
+ echo '</ul>';
895
+ }
896
+ }
897
+ }
898
+ }
899
+ }
900
+
901
+ add_action( 'pagination', 'pagination' );
902
+
903
+ /**
904
+ * Template for comments and pingbacks.
905
+ * Used as a callback by wp_list_comments() for displaying the comments.
906
+ *
907
+ * @since [foundation] 1.0
908
+ */
909
+ function foundation_comment( $comment, $args, $depth ) {
910
+ $GLOBALS['comment'] = $comment;
911
+ switch ( $comment->comment_type ) {
912
+ case 'pingback' :
913
+ case 'trackback' :
914
+ // Display trackbacks differently than normal comments.
915
+ ?>
916
+ <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
917
+ <p><?php _e( 'Pingback:', 'foundation' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'foundation' ), '<span class="edit-link">', '</span>' ); ?></p>
918
+ <?php
919
+ break;
920
+ default :
921
+ // Proceed with normal comments.
922
+ global $post;
923
+ ?>
924
+ <li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
925
+ <article id="comment-<?php comment_ID(); ?>" class="comment">
926
+ <header class="comment-meta comment-author vcard clearfix">
927
+ <?php
928
+ echo get_avatar( $comment, 44 );
929
+ printf(
930
+ '<cite class="fn">%1$s %2$s</cite>',
931
+ get_comment_author_link(),
932
+ // If current post author is also comment author, make it known visually.
933
+ ( $comment->user_id === $post->post_author ) ? '<span> ' . __( 'Post author', 'foundation' ) . '</span>' : ''
934
+ );
935
+ printf(
936
+ '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
937
+ esc_url( get_comment_link( $comment->comment_ID ) ),
938
+ get_comment_time( 'c' ),
939
+ /* translators: 1: date, 2: time */
940
+ sprintf( __( '%1$s at %2$s', 'foundation' ), get_comment_date(), get_comment_time() )
941
+ );
942
+ ?>
943
+ </header>
944
+
945
+ <?php
946
+ if ( '0' == $comment->comment_approved ):
947
+ ?>
948
+ <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'foundation' ); ?></p>
949
+ <?php endif; ?>
950
+
951
+ <section class="comment-content comment clearfix">
952
+ <?php comment_text(); ?>
953
+ </section>
954
+
955
+ <div class="reply">
956
+ <?php edit_comment_link( __( 'Edit', 'foundation' ), '<span class="edit-link">', '</span> / ' ); ?>
957
+ <?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply', 'foundation' ), 'after' => ' <span>&darr;</span>', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
958
+ </div>
959
+ </article>
960
+ <?php
961
+ break;
962
+ } // end comment_type check
963
+ }
964
+
965
+ /**
966
+ * Redirect to post when search query returns single result
967
+ *
968
+ * @see http://wpsnipp.com/index.php/functions-php/redirect-to-post-when-search-query-returns-single-result/
969
+ * @since [foundation] 1.0
970
+ */
971
+ function foundation_single_result() {
972
+ if ( is_search() ) {
973
+ global $wp_query;
974
+ if ( $wp_query->post_count == 1 ) {
975
+ wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
976
+ }
977
+ }
978
+ }
979
+ add_action( 'template_redirect', 'foundation_single_result' );
980
+
981
+ /**
982
+ * Add postMessage support for site title and description for the Theme Customizer.
983
+ *
984
+ * @since [foundation] 1.0
985
+ *
986
+ * @param WP_Customize_Manager $wp_customize Theme Customizer object.
987
+ * @return void
988
+ */
989
+ function foundation_customize_register( $wp_customize ) {
990
+ $wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
991
+ $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
992
+ }
993
+ add_action( 'customize_register', 'foundation_customize_register' );
994
+
995
+ /* SHORTCODES */
996
+
997
+ // Allow shortcodes in widgets
998
+ add_filter( 'widget_text', 'do_shortcode' );
999
+
1000
+ /**
1001
+ * The supported attributes for the shortcode are 'id', 'align', 'width', and 'caption'.
1002
+ *
1003
+ * @since [foundation] 1.0
1004
+ */
1005
+ function foundation_shortcode_caption( $atts, $content = null ) {
1006
+ extract(
1007
+ shortcode_atts(
1008
+ array(
1009
+ 'id' => '',
1010
+ 'align' => 'alignnone',
1011
+ 'width' => '',
1012
+ 'caption' => '',
1013
+ ), $atts
1014
+ )
1015
+ );
1016
+
1017
+ if ( 1 > ( int ) $width )
1018
+ return $content;
1019
+
1020
+ if ( empty( $caption ) ) {
1021
+ preg_match( '/(<img[^>]+>)[ ]?(.*)/i', $content, $match );
1022
+ $content = $match[1];
1023
+ $caption = $match[2];
1024
+ }
1025
+
1026
+ $id = $id ? $id : 'attachment_' . rand( 1, 999 );
1027
+ $idtag = 'id="' . esc_attr( $id ) . '"';
1028
+
1029
+ $out[] = '<figure ' . $idtag . 'aria-describedby="figcaption_' . $id . '" class="post-image wp-caption ' . $align . '">';
1030
+ $out[] = apply_filters( 'foundation_shortcode_caption_content', do_shortcode( $content ), $id, '', '' );
1031
+ $out[] = '<figcaption id="figcaption_' . $id . '" class="caption wp-caption-text">' . wpautop( wptexturize( $caption ) ) . '</figcaption>';
1032
+ $out[] = '</figure>';
1033
+
1034
+ return implode( "\n", $out );
1035
+ }
1036
+
1037
+ add_shortcode( 'wp_caption', 'foundation_shortcode_caption' );
1038
+ add_shortcode( 'caption', 'foundation_shortcode_caption' );
1039
+
1040
+ /**
1041
+ * Gallery shortcode.
1042
+ *
1043
+ * @since [foundation] 1.0
1044
+ */
1045
+ function foundation_gallery_shortcode( $attr ) {
1046
+ global $post, $wp_locale;
1047
+
1048
+ $output = array();
1049
+
1050
+ $args = array( 'post_type' => 'attachment', 'numberposts' => - 1, 'post_status' => null, 'post_parent' => $post->ID );
1051
+ $attachments = get_posts( $args );
1052
+ if ( $attachments ) {
1053
+ $i = 0;
1054
+ $output[] = '<ul class="block-grid three-up">';
1055
+ foreach ( $attachments as $attachment ) {
1056
+ $src = wp_get_attachment_image_src( $attachment->ID , 'full' );
1057
+ $active = ( $i == 0) ? ' active' : '';
1058
+ $caption = wpautop( wptexturize( esc_attr( trim( strip_tags( $attachment->post_excerpt ) ) ) ) );
1059
+ $data_caption = $caption ? ' data-caption="' . $caption . '"' : '';
1060
+ $output[] = '<li class="item' . $active . '">';
1061
+ $output[] = '<a href="' . get_attachment_link( $attachment->ID ) . '">';
1062
+ $output[] = '<img' . $data_caption . ' src="' . $src[0] . '" alt="' . esc_attr( trim( strip_tags( $attachment->post_title ) ) ) . '">';
1063
+ $output[] = '</a>';
1064
+ $output[] = '</li>';
1065
+ ++$i;
1066
+ }
1067
+ $output[] = '</ul>';
1068
+ }
1069
+
1070
+ return implode( "\n", $output );
1071
+ }
1072
+
1073
+ // removes standard shortcode
1074
+ remove_shortcode( 'gallery', 'gallery_shortcode' );
1075
+ add_shortcode( 'gallery', 'foundation_gallery_shortcode' );
1076
+
1077
+
1078
+ /* ADMIN STUFF */
1079
+
1080
+ /**
1081
+ * Remove unnecessary dashboard widgets
1082
+ *
1083
+ * @link http://www.deluxeblogtips.com/2011/01/remove-dashboard-widgets-in-wordpress.html
1084
+ * @since [foundation] 1.0
1085
+ */
1086
+ function foundation_remove_dashboard_widgets() {
1087
+ // Incoming Links Widget
1088
+ remove_meta_box( 'dashboard_incoming_links', 'dashboard', 'normal' );
1089
+
1090
+ // Plugins Widget
1091
+ remove_meta_box( 'dashboard_plugins', 'dashboard', 'normal' );
1092
+
1093
+ remove_meta_box( 'dashboard_primary', 'dashboard', 'normal' );
1094
+ remove_meta_box( 'dashboard_secondary', 'dashboard', 'normal' );
1095
+
1096
+ // Sitepress WPML Plugin Widget
1097
+ remove_meta_box( 'icl_dashboard_widget', 'dashboard', 'normal' );
1098
+
1099
+ // Yoast's SEO Plugin Widget
1100
+ remove_meta_box( 'yoast_db_widget', 'dashboard', 'normal' );
1101
+ }
1102
+
1103
+ add_action( 'admin_init', 'foundation_remove_dashboard_widgets' );
1104
+
1105
+ /**
1106
+ * Adds custom menu to admin bar
1107
+ *
1108
+ * @since [foundation] 1.0
1109
+ */
1110
+ function foundation_bar_menu( $wp_admin_bar ) {
1111
+ if ( ! is_super_admin() or ! is_admin_bar_showing() )
1112
+ return;
1113
+
1114
+ /**
1115
+ * Change "Howdy"
1116
+ */
1117
+ // get the node that contains "howdy"
1118
+ $my_account = $wp_admin_bar->get_node( 'my-account' );
1119
+ // change the "howdy"
1120
+ $my_account->title = str_replace( 'Howdy,', __( 'Hi,', 'foundation' ), $my_account->title );
1121
+ // remove the original node
1122
+ $wp_admin_bar->remove_node( 'my-account' );
1123
+ // add back our modified version
1124
+ $wp_admin_bar->add_node( $my_account );
1125
+
1126
+ /**
1127
+ * Removing the "W" menu
1128
+ * I have nothing against it, but I *never* use it
1129
+ */
1130
+ $wp_admin_bar->remove_menu( 'wp-logo' );
1131
+
1132
+ /**
1133
+ * Create a "Favorites" menu
1134
+ * First, just create the parent menu item
1135
+ */
1136
+ $wp_admin_bar->add_menu(
1137
+ array(
1138
+ 'id' => 'favorites',
1139
+ 'parent' => 'top-secondary', // puts it on the right-hand side
1140
+ 'title' => __( 'Favorites', 'foundation' ),
1141
+ )
1142
+ );
1143
+
1144
+ /**
1145
+ * Then add links to it
1146
+ * This link goes to the All Settings page,
1147
+ * so only show it to users that have appropriate privileges
1148
+ */
1149
+ if ( current_user_can( 'manage_options' ) ) {
1150
+ $wp_admin_bar->add_menu(
1151
+ array(
1152
+ 'id' => 'all-settings',
1153
+ 'parent' => 'favorites',
1154
+ 'title' => __( 'Options', 'foundation' ),
1155
+ 'href' => admin_url( 'options.php' ),
1156
+ )
1157
+ );
1158
+ }
1159
+
1160
+ // This one goes to the list of the current user's posts
1161
+ $wp_admin_bar->add_menu(
1162
+ array(
1163
+ 'id' => 'my-posts',
1164
+ 'parent' => 'favorites',
1165
+ 'title' => __( 'My Posts', 'foundation' ),
1166
+ 'href' => admin_url( 'edit.php?post_type=post&author=' . get_current_user_id() ),
1167
+ )
1168
+ );
1169
+
1170
+ // MySQL query and script execution timer output
1171
+ $wp_admin_bar->add_menu(
1172
+ array(
1173
+ 'id' => 'do_query_bar',
1174
+ 'parent' => 'top-secondary', // puts it on the right-hand side
1175
+ 'title' => get_num_queries() . 'Q - ' . timer_stop() . 's', // link title
1176
+ 'href' => '#',
1177
+ 'meta' => false,
1178
+ )
1179
+ );
1180
+ }
1181
+
1182
+ add_action( 'admin_bar_menu', 'foundation_bar_menu', '1000' );
1183
+
1184
+ /**
1185
+ * This simple hack will remove the AIM, Yahoo and Jabber fields and will replace them with a bunch of other social network profiles.
1186
+ *
1187
+ * @since [foundation] 1.0
1188
+ */
1189
+ function foundation_user_contactmethods( $contactmethods ) {
1190
+ unset( $contactmethods['aim'], $contactmethods['yim'], $contactmethods['jabber'] );
1191
+
1192
+ // Add Location
1193
+ $contactmethods['user_location'] = __( 'Location', 'foundation' );
1194
+
1195
+ // Add Facebook
1196
+ $contactmethods['user_fb'] = __( 'Facebook', 'foundation' );
1197
+
1198
+ // Add Pinterest
1199
+ $contactmethods['user_pt'] = __( 'Pinterest', 'foundation' );
1200
+
1201
+ // Add Twitter
1202
+ $contactmethods['user_tw'] = __( 'Twitter', 'foundation' );
1203
+
1204
+ // Add Linkedin
1205
+ $contactmethods['user_lk'] = __( 'Linkedin', 'foundation' );
1206
+
1207
+ // Add Github
1208
+ $contactmethods['user_gh'] = __( 'Github', 'foundation' );
1209
+
1210
+ // Add Google+
1211
+ $contactmethods['google_profile'] = __( 'Google+ profile', 'foundation' );
1212
+
1213
+ return $contactmethods;
1214
+ }
1215
+
1216
+ add_filter( 'user_contactmethods', 'foundation_user_contactmethods' );
1217
+
1218
+ /**
1219
+ * Allow more HTML tags in the editor
1220
+ * Add more languages to spell check
1221
+ *
1222
+ * @since [foundation] 1.0
1223
+ */
1224
+ function foundation_change_mce_options( $array ) {
1225
+ $ext = 'pre[id|name|class|style],iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]';
1226
+
1227
+ if ( isset( $array['extended_valid_elements'] ) ) {
1228
+ $array['extended_valid_elements'] .= ','.$ext;
1229
+ }
1230
+ else {
1231
+ $array['extended_valid_elements'] = $ext;
1232
+ }
1233
+
1234
+ // Add block format elements you want to show in dropdown
1235
+ $array['theme_advanced_blockformats'] = 'h1,h2,h3,h4,p,code,blockquote';
1236
+ $array['theme_advanced_disable'] = 'strikethrough,underline,forecolor,justifyfull';
1237
+ $array[ 'spellchecker_languages' ] = '+Spanish=sp, English=en';
1238
+
1239
+ return $array;
1240
+ }
1241
+
1242
+ add_filter( 'tiny_mce_before_init', 'foundation_change_mce_options' );
1243
+
1244
+ /**
1245
+ * Define custom styles for the dropdown menu
1246
+ *
1247
+ * @since [foundation] 1.0
1248
+ */
1249
+ function foundation_style_formats( $settings ) {
1250
+ $style_formats = array(
1251
+ array(
1252
+ 'title' => __( 'Button', 'foundation' ),
1253
+ 'selector' => 'a',
1254
+ 'classes' => 'button',
1255
+ 'exact' => true,
1256
+ ),
1257
+ array(
1258
+ 'title' => __( 'Lead', 'foundation' ),
1259
+ 'selector' => 'p',
1260
+ 'classes' => 'lead',
1261
+ ),
1262
+ array(
1263
+ 'title' => __( 'Label', 'foundation' ),
1264
+ 'inline' => 'span',
1265
+ 'classes' => 'label',
1266
+ ),
1267
+ array(
1268
+ 'title' => __( 'Panel', 'foundation' ),
1269
+ 'block' => 'div',
1270
+ 'classes' => 'panel',
1271
+ 'wrapper' => true,
1272
+ ),
1273
+ array(
1274
+ 'title' => __( 'Panel callout', 'foundation' ),
1275
+ 'block' => 'div',
1276
+ 'classes' => 'panel callout',
1277
+ 'wrapper' => true,
1278
+ ),
1279
+ array(
1280
+ 'title' => __( 'Radius (Panel, Label, Button)', 'foundation' ),
1281
+ 'selector' => 'a.button, span.label, div.panel, div.panel.callout',
1282
+ 'classes' => 'radius',
1283
+ ),
1284
+ array(
1285
+ 'title' => __( 'Round (Label, Button)', 'foundation' ),
1286
+ 'selector' => 'a.button, span.label',
1287
+ 'classes' => 'round',
1288
+ ),
1289
+ array(
1290
+ 'title' => __( 'Alert (Label, Button)', 'foundation' ),
1291
+ 'selector' => 'a.button, span.label',
1292
+ 'classes' => 'alert',
1293
+ ),
1294
+ array(
1295
+ 'title' => __( 'Message (Label, Button)', 'foundation' ),
1296
+ 'selector' => 'a.button, span.label',
1297
+ 'classes' => 'success',
1298
+ ),
1299
+ array(
1300
+ 'title' => __( 'Secondary (Label, Button)', 'foundation' ),
1301
+ 'selector' => 'a.button, span.label',
1302
+ 'classes' => 'secondary',
1303
+ ),
1304
+ array(
1305
+ 'title' => __( 'Subheader (Header)', 'foundation' ),
1306
+ 'selector' => 'h1, h2, h3, h4, h5, h6',
1307
+ 'classes' => 'subheader',
1308
+ ),
1309
+ array(
1310
+ 'title' => __( 'Keyborad', 'foundation' ),
1311
+ 'inline' => 'kbd',
1312
+ ),
1313
+ );
1314
+
1315
+ $settings['style_formats'] = json_encode( apply_filters( 'foundation_style_formats', $style_formats ) );
1316
+
1317
+ return $settings;
1318
+ }
1319
+
1320
+ add_filter( 'tiny_mce_before_init', 'foundation_style_formats' );
1321
+
1322
+ /**
1323
+ * Add the Styles dropdown to the visual editor
1324
+ *
1325
+ * @since [foundation] 1.0
1326
+ */
1327
+ function foundation_add_mce_button( $buttons ) {
1328
+ if ( ! in_array( 'styleselect', $buttons ) ) {
1329
+ $buttons[] = 'styleselect';
1330
+ }
1331
+
1332
+ return $buttons;
1333
+ }
1334
+
1335
+ add_filter( 'mce_buttons_2', 'foundation_add_mce_button' );
1336
+
1337
+ /**
1338
+ * Adds previous/next links to post edition window
1339
+ *
1340
+ * @since [foundation] 1.0
1341
+ */
1342
+ function foundation_add_navigation_edit_posts() {
1343
+ if ( isset( $_GET['post'] ) and isset( $_GET['action'] ) and $_GET['action'] == 'edit' ) {
1344
+ global $post;
1345
+
1346
+ $args = array(
1347
+ 'public' => true,
1348
+ '_builtin' => false,
1349
+ );
1350
+ $output = 'names'; // names or objects, note names is the default
1351
+ $operator = 'and'; // 'and' or 'or'
1352
+
1353
+ $post_types = get_post_types( $args, $output, $operator );
1354
+
1355
+ $post_types['post'] = 'post';
1356
+ $post_types['page'] = 'page';
1357
+
1358
+ if ( is_object( $post ) and in_array( $post->post_type, $post_types ) ) {
1359
+ $wtf = array( true, false );
1360
+ foreach ( $wtf as $prev ) {
1361
+ $p = get_adjacent_post( false, '', $prev );
1362
+
1363
+ if ( ! empty( $p ) ) {
1364
+ echo '<script>
1365
+ jQuery(function($) {
1366
+ $(".wrap h2" )
1367
+ .append(\'<a class="add-new-h2" href="' . admin_url( 'post.php?action=edit&post=' . $p->ID ) . '" title="' . __( 'Editar', 'foundation' ) . ' ' . apply_filters( 'the_title', $p->post_title ) . '">' . ( $prev ? '&laquo; ' : '' ) . apply_filters( 'the_title', $p->post_title ) . ( ! $prev ? ' &raquo;' : '' ) . '</a>\' );
1368
+ });
1369
+ </script>';
1370
+ }
1371
+ }
1372
+ }
1373
+ }
1374
+ }
1375
+
1376
+ add_action( 'admin_head', 'foundation_add_navigation_edit_posts' );
1377
+
1378
+ /**
1379
+ * Custom Login Logo Support
1380
+ *
1381
+ * @since [foundation] 1.0
1382
+ */
1383
+ function foundation_custom_login_logo() {
1384
+ echo '<style type="text/css">
1385
+ h1 a { background-image:url(' . get_template_directory_uri() . '/images/login-logo.png) !important; }
1386
+ </style>';
1387
+ }
1388
+
1389
+ add_action( 'login_head', 'foundation_custom_login_logo' );
1390
+
1391
+ /**
1392
+ * Custom Login URL
1393
+ *
1394
+ * @since [foundation] 1.0
1395
+ */
1396
+ function foundation_wp_login_url() {
1397
+ return home_url();
1398
+ }
1399
+
1400
+ add_filter( 'login_headerurl', 'foundation_wp_login_url' );
1401
+
1402
+ /**
1403
+ * Custom Login Title
1404
+ *
1405
+ * @since [foundation] 1.0
1406
+ */
1407
+ function foundation_wp_login_title() {
1408
+ return get_option( 'blogname' );
1409
+ }
1410
+
1411
+ add_filter( 'login_headertitle', 'foundation_wp_login_title' );
1412
+
1413
+ /**
1414
+ * Custom Backend Footer
1415
+ *
1416
+ * @since [foundation] 1.0
1417
+ */
1418
+ function foundation_custom_admin_footer() {
1419
+ $credits = '<span id="footer-thankyou">Crafted by <a href="//alexsancho.name" target="_blank">Alex Sancho</a></span>.';
1420
+
1421
+ echo apply_filters( 'foundation_custom_admin_footer', $credits );
1422
+ }
1423
+
1424
+ // adding it to the admin area
1425
+ add_filter( 'admin_footer_text', 'foundation_custom_admin_footer' );