stump-cli 0.1.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1243) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/README.md +9 -5
  4. data/bin/stump-cli +77 -27
  5. data/lib/{wp/.gitignore → .gitignore.erb} +2 -2
  6. data/lib/stump-cli/version.rb +1 -1
  7. data/lib/style.erb +11 -0
  8. data/stump-cli.gemspec +2 -0
  9. metadata +56 -1268
  10. data/lib/wp/Movefile-example +0 -62
  11. data/lib/wp/README.md +0 -25
  12. data/lib/wp/index.php +0 -17
  13. data/lib/wp/license.txt +0 -385
  14. data/lib/wp/readme.html +0 -96
  15. data/lib/wp/wp-activate.php +0 -131
  16. data/lib/wp/wp-admin/about.php +0 -193
  17. data/lib/wp/wp-admin/admin-ajax.php +0 -98
  18. data/lib/wp/wp-admin/admin-footer.php +0 -99
  19. data/lib/wp/wp-admin/admin-functions.php +0 -15
  20. data/lib/wp/wp-admin/admin-header.php +0 -243
  21. data/lib/wp/wp-admin/admin-post.php +0 -71
  22. data/lib/wp/wp-admin/admin.php +0 -347
  23. data/lib/wp/wp-admin/async-upload.php +0 -114
  24. data/lib/wp/wp-admin/comment.php +0 -299
  25. data/lib/wp/wp-admin/credits.php +0 -192
  26. data/lib/wp/wp-admin/css/about-rtl.css +0 -446
  27. data/lib/wp/wp-admin/css/about.css +0 -446
  28. data/lib/wp/wp-admin/css/admin-menu-rtl.css +0 -917
  29. data/lib/wp/wp-admin/css/admin-menu.css +0 -917
  30. data/lib/wp/wp-admin/css/color-picker-rtl.css +0 -127
  31. data/lib/wp/wp-admin/css/color-picker-rtl.min.css +0 -1
  32. data/lib/wp/wp-admin/css/color-picker.css +0 -127
  33. data/lib/wp/wp-admin/css/color-picker.min.css +0 -1
  34. data/lib/wp/wp-admin/css/colors/_admin.scss +0 -525
  35. data/lib/wp/wp-admin/css/colors/_mixins.scss +0 -43
  36. data/lib/wp/wp-admin/css/colors/_variables.scss +0 -58
  37. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.css +0 -341
  38. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.min.css +0 -1
  39. data/lib/wp/wp-admin/css/colors/blue/colors.css +0 -341
  40. data/lib/wp/wp-admin/css/colors/blue/colors.min.css +0 -1
  41. data/lib/wp/wp-admin/css/colors/blue/colors.scss +0 -11
  42. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.css +0 -341
  43. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.min.css +0 -1
  44. data/lib/wp/wp-admin/css/colors/coffee/colors.css +0 -341
  45. data/lib/wp/wp-admin/css/colors/coffee/colors.min.css +0 -1
  46. data/lib/wp/wp-admin/css/colors/coffee/colors.scss +0 -7
  47. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.css +0 -341
  48. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.min.css +0 -1
  49. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.css +0 -341
  50. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.min.css +0 -1
  51. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.scss +0 -8
  52. data/lib/wp/wp-admin/css/colors/light/colors-rtl.css +0 -349
  53. data/lib/wp/wp-admin/css/colors/light/colors-rtl.min.css +0 -1
  54. data/lib/wp/wp-admin/css/colors/light/colors.css +0 -349
  55. data/lib/wp/wp-admin/css/colors/light/colors.min.css +0 -1
  56. data/lib/wp/wp-admin/css/colors/light/colors.scss +0 -38
  57. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.css +0 -341
  58. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.min.css +0 -1
  59. data/lib/wp/wp-admin/css/colors/midnight/colors.css +0 -341
  60. data/lib/wp/wp-admin/css/colors/midnight/colors.min.css +0 -1
  61. data/lib/wp/wp-admin/css/colors/midnight/colors.scss +0 -5
  62. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.css +0 -341
  63. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.min.css +0 -1
  64. data/lib/wp/wp-admin/css/colors/ocean/colors.css +0 -341
  65. data/lib/wp/wp-admin/css/colors/ocean/colors.min.css +0 -1
  66. data/lib/wp/wp-admin/css/colors/ocean/colors.scss +0 -8
  67. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.css +0 -341
  68. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.min.css +0 -1
  69. data/lib/wp/wp-admin/css/colors/sunrise/colors.css +0 -341
  70. data/lib/wp/wp-admin/css/colors/sunrise/colors.min.css +0 -1
  71. data/lib/wp/wp-admin/css/colors/sunrise/colors.scss +0 -6
  72. data/lib/wp/wp-admin/css/common-rtl.css +0 -3212
  73. data/lib/wp/wp-admin/css/common.css +0 -3212
  74. data/lib/wp/wp-admin/css/customize-controls-rtl.css +0 -889
  75. data/lib/wp/wp-admin/css/customize-controls-rtl.min.css +0 -1
  76. data/lib/wp/wp-admin/css/customize-controls.css +0 -889
  77. data/lib/wp/wp-admin/css/customize-controls.min.css +0 -1
  78. data/lib/wp/wp-admin/css/customize-widgets-rtl.css +0 -603
  79. data/lib/wp/wp-admin/css/customize-widgets-rtl.min.css +0 -1
  80. data/lib/wp/wp-admin/css/customize-widgets.css +0 -603
  81. data/lib/wp/wp-admin/css/customize-widgets.min.css +0 -1
  82. data/lib/wp/wp-admin/css/dashboard-rtl.css +0 -1116
  83. data/lib/wp/wp-admin/css/dashboard.css +0 -1116
  84. data/lib/wp/wp-admin/css/deprecated-media-rtl.css +0 -371
  85. data/lib/wp/wp-admin/css/deprecated-media-rtl.min.css +0 -1
  86. data/lib/wp/wp-admin/css/deprecated-media.css +0 -371
  87. data/lib/wp/wp-admin/css/deprecated-media.min.css +0 -1
  88. data/lib/wp/wp-admin/css/edit-rtl.css +0 -1501
  89. data/lib/wp/wp-admin/css/edit.css +0 -1501
  90. data/lib/wp/wp-admin/css/farbtastic-rtl.css +0 -41
  91. data/lib/wp/wp-admin/css/farbtastic.css +0 -41
  92. data/lib/wp/wp-admin/css/forms-rtl.css +0 -992
  93. data/lib/wp/wp-admin/css/forms.css +0 -992
  94. data/lib/wp/wp-admin/css/ie-rtl.css +0 -785
  95. data/lib/wp/wp-admin/css/ie-rtl.min.css +0 -1
  96. data/lib/wp/wp-admin/css/ie.css +0 -785
  97. data/lib/wp/wp-admin/css/ie.min.css +0 -1
  98. data/lib/wp/wp-admin/css/install-rtl.css +0 -389
  99. data/lib/wp/wp-admin/css/install-rtl.min.css +0 -1
  100. data/lib/wp/wp-admin/css/install.css +0 -389
  101. data/lib/wp/wp-admin/css/install.min.css +0 -1
  102. data/lib/wp/wp-admin/css/l10n-rtl.css +0 -101
  103. data/lib/wp/wp-admin/css/l10n.css +0 -101
  104. data/lib/wp/wp-admin/css/list-tables-rtl.css +0 -1875
  105. data/lib/wp/wp-admin/css/list-tables.css +0 -1875
  106. data/lib/wp/wp-admin/css/login-rtl.css +0 -269
  107. data/lib/wp/wp-admin/css/login-rtl.min.css +0 -1
  108. data/lib/wp/wp-admin/css/login.css +0 -269
  109. data/lib/wp/wp-admin/css/login.min.css +0 -1
  110. data/lib/wp/wp-admin/css/media-rtl.css +0 -1196
  111. data/lib/wp/wp-admin/css/media.css +0 -1196
  112. data/lib/wp/wp-admin/css/nav-menus-rtl.css +0 -857
  113. data/lib/wp/wp-admin/css/nav-menus.css +0 -857
  114. data/lib/wp/wp-admin/css/press-this-rtl.css +0 -458
  115. data/lib/wp/wp-admin/css/press-this.css +0 -458
  116. data/lib/wp/wp-admin/css/revisions-rtl.css +0 -574
  117. data/lib/wp/wp-admin/css/revisions.css +0 -574
  118. data/lib/wp/wp-admin/css/themes-rtl.css +0 -1732
  119. data/lib/wp/wp-admin/css/themes.css +0 -1732
  120. data/lib/wp/wp-admin/css/widgets-rtl.css +0 -577
  121. data/lib/wp/wp-admin/css/widgets.css +0 -577
  122. data/lib/wp/wp-admin/css/wp-admin-rtl.css +0 -14
  123. data/lib/wp/wp-admin/css/wp-admin-rtl.min.css +0 -1
  124. data/lib/wp/wp-admin/css/wp-admin.css +0 -14
  125. data/lib/wp/wp-admin/css/wp-admin.min.css +0 -1
  126. data/lib/wp/wp-admin/custom-background.php +0 -482
  127. data/lib/wp/wp-admin/custom-header.php +0 -1366
  128. data/lib/wp/wp-admin/customize.php +0 -278
  129. data/lib/wp/wp-admin/edit-comments.php +0 -254
  130. data/lib/wp/wp-admin/edit-form-advanced.php +0 -636
  131. data/lib/wp/wp-admin/edit-form-comment.php +0 -160
  132. data/lib/wp/wp-admin/edit-link-form.php +0 -150
  133. data/lib/wp/wp-admin/edit-tag-form.php +0 -204
  134. data/lib/wp/wp-admin/edit-tags.php +0 -591
  135. data/lib/wp/wp-admin/edit.php +0 -330
  136. data/lib/wp/wp-admin/export.php +0 -243
  137. data/lib/wp/wp-admin/freedoms.php +0 -57
  138. data/lib/wp/wp-admin/images/align-center-2x.png +0 -0
  139. data/lib/wp/wp-admin/images/align-center.png +0 -0
  140. data/lib/wp/wp-admin/images/align-left-2x.png +0 -0
  141. data/lib/wp/wp-admin/images/align-left.png +0 -0
  142. data/lib/wp/wp-admin/images/align-none-2x.png +0 -0
  143. data/lib/wp/wp-admin/images/align-none.png +0 -0
  144. data/lib/wp/wp-admin/images/align-right-2x.png +0 -0
  145. data/lib/wp/wp-admin/images/align-right.png +0 -0
  146. data/lib/wp/wp-admin/images/arrows-2x.png +0 -0
  147. data/lib/wp/wp-admin/images/arrows.png +0 -0
  148. data/lib/wp/wp-admin/images/bubble_bg-2x.gif +0 -0
  149. data/lib/wp/wp-admin/images/bubble_bg.gif +0 -0
  150. data/lib/wp/wp-admin/images/comment-grey-bubble-2x.png +0 -0
  151. data/lib/wp/wp-admin/images/comment-grey-bubble.png +0 -0
  152. data/lib/wp/wp-admin/images/date-button-2x.gif +0 -0
  153. data/lib/wp/wp-admin/images/date-button.gif +0 -0
  154. data/lib/wp/wp-admin/images/generic.png +0 -0
  155. data/lib/wp/wp-admin/images/icons32-2x.png +0 -0
  156. data/lib/wp/wp-admin/images/icons32-vs-2x.png +0 -0
  157. data/lib/wp/wp-admin/images/icons32-vs.png +0 -0
  158. data/lib/wp/wp-admin/images/icons32.png +0 -0
  159. data/lib/wp/wp-admin/images/imgedit-icons-2x.png +0 -0
  160. data/lib/wp/wp-admin/images/imgedit-icons.png +0 -0
  161. data/lib/wp/wp-admin/images/list-2x.png +0 -0
  162. data/lib/wp/wp-admin/images/list.png +0 -0
  163. data/lib/wp/wp-admin/images/loading.gif +0 -0
  164. data/lib/wp/wp-admin/images/marker.png +0 -0
  165. data/lib/wp/wp-admin/images/mask.png +0 -0
  166. data/lib/wp/wp-admin/images/media-button-2x.png +0 -0
  167. data/lib/wp/wp-admin/images/media-button-image.gif +0 -0
  168. data/lib/wp/wp-admin/images/media-button-music.gif +0 -0
  169. data/lib/wp/wp-admin/images/media-button-other.gif +0 -0
  170. data/lib/wp/wp-admin/images/media-button-video.gif +0 -0
  171. data/lib/wp/wp-admin/images/media-button.png +0 -0
  172. data/lib/wp/wp-admin/images/menu-2x.png +0 -0
  173. data/lib/wp/wp-admin/images/menu-vs-2x.png +0 -0
  174. data/lib/wp/wp-admin/images/menu-vs.png +0 -0
  175. data/lib/wp/wp-admin/images/menu.png +0 -0
  176. data/lib/wp/wp-admin/images/no.png +0 -0
  177. data/lib/wp/wp-admin/images/post-formats-vs.png +0 -0
  178. data/lib/wp/wp-admin/images/post-formats.png +0 -0
  179. data/lib/wp/wp-admin/images/post-formats32-vs.png +0 -0
  180. data/lib/wp/wp-admin/images/post-formats32.png +0 -0
  181. data/lib/wp/wp-admin/images/resize-2x.gif +0 -0
  182. data/lib/wp/wp-admin/images/resize-rtl-2x.gif +0 -0
  183. data/lib/wp/wp-admin/images/resize-rtl.gif +0 -0
  184. data/lib/wp/wp-admin/images/resize.gif +0 -0
  185. data/lib/wp/wp-admin/images/se.png +0 -0
  186. data/lib/wp/wp-admin/images/sort-2x.gif +0 -0
  187. data/lib/wp/wp-admin/images/sort.gif +0 -0
  188. data/lib/wp/wp-admin/images/spinner-2x.gif +0 -0
  189. data/lib/wp/wp-admin/images/spinner.gif +0 -0
  190. data/lib/wp/wp-admin/images/stars-2x.png +0 -0
  191. data/lib/wp/wp-admin/images/stars.png +0 -0
  192. data/lib/wp/wp-admin/images/w-logo-blue.png +0 -0
  193. data/lib/wp/wp-admin/images/w-logo-white.png +0 -0
  194. data/lib/wp/wp-admin/images/wheel.png +0 -0
  195. data/lib/wp/wp-admin/images/wordpress-logo-white.svg +0 -1
  196. data/lib/wp/wp-admin/images/wordpress-logo.png +0 -0
  197. data/lib/wp/wp-admin/images/wordpress-logo.svg +0 -1
  198. data/lib/wp/wp-admin/images/wpspin_light-2x.gif +0 -0
  199. data/lib/wp/wp-admin/images/wpspin_light.gif +0 -0
  200. data/lib/wp/wp-admin/images/xit-2x.gif +0 -0
  201. data/lib/wp/wp-admin/images/xit.gif +0 -0
  202. data/lib/wp/wp-admin/images/yes.png +0 -0
  203. data/lib/wp/wp-admin/import.php +0 -132
  204. data/lib/wp/wp-admin/includes/admin.php +0 -74
  205. data/lib/wp/wp-admin/includes/ajax-actions.php +0 -2762
  206. data/lib/wp/wp-admin/includes/bookmark.php +0 -305
  207. data/lib/wp/wp-admin/includes/class-ftp-pure.php +0 -190
  208. data/lib/wp/wp-admin/includes/class-ftp-sockets.php +0 -250
  209. data/lib/wp/wp-admin/includes/class-ftp.php +0 -907
  210. data/lib/wp/wp-admin/includes/class-pclzip.php +0 -5687
  211. data/lib/wp/wp-admin/includes/class-wp-comments-list-table.php +0 -637
  212. data/lib/wp/wp-admin/includes/class-wp-filesystem-base.php +0 -815
  213. data/lib/wp/wp-admin/includes/class-wp-filesystem-direct.php +0 -384
  214. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpext.php +0 -415
  215. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php +0 -352
  216. data/lib/wp/wp-admin/includes/class-wp-filesystem-ssh2.php +0 -392
  217. data/lib/wp/wp-admin/includes/class-wp-importer.php +0 -302
  218. data/lib/wp/wp-admin/includes/class-wp-links-list-table.php +0 -207
  219. data/lib/wp/wp-admin/includes/class-wp-list-table.php +0 -1080
  220. data/lib/wp/wp-admin/includes/class-wp-media-list-table.php +0 -574
  221. data/lib/wp/wp-admin/includes/class-wp-ms-sites-list-table.php +0 -402
  222. data/lib/wp/wp-admin/includes/class-wp-ms-themes-list-table.php +0 -459
  223. data/lib/wp/wp-admin/includes/class-wp-ms-users-list-table.php +0 -303
  224. data/lib/wp/wp-admin/includes/class-wp-plugin-install-list-table.php +0 -490
  225. data/lib/wp/wp-admin/includes/class-wp-plugins-list-table.php +0 -605
  226. data/lib/wp/wp-admin/includes/class-wp-posts-list-table.php +0 -1306
  227. data/lib/wp/wp-admin/includes/class-wp-terms-list-table.php +0 -466
  228. data/lib/wp/wp-admin/includes/class-wp-theme-install-list-table.php +0 -431
  229. data/lib/wp/wp-admin/includes/class-wp-themes-list-table.php +0 -279
  230. data/lib/wp/wp-admin/includes/class-wp-upgrader-skins.php +0 -767
  231. data/lib/wp/wp-admin/includes/class-wp-upgrader.php +0 -2676
  232. data/lib/wp/wp-admin/includes/class-wp-users-list-table.php +0 -459
  233. data/lib/wp/wp-admin/includes/comment.php +0 -171
  234. data/lib/wp/wp-admin/includes/continents-cities.php +0 -493
  235. data/lib/wp/wp-admin/includes/dashboard.php +0 -1333
  236. data/lib/wp/wp-admin/includes/deprecated.php +0 -1190
  237. data/lib/wp/wp-admin/includes/export.php +0 -508
  238. data/lib/wp/wp-admin/includes/file.php +0 -1152
  239. data/lib/wp/wp-admin/includes/image-edit.php +0 -828
  240. data/lib/wp/wp-admin/includes/image.php +0 -598
  241. data/lib/wp/wp-admin/includes/import.php +0 -206
  242. data/lib/wp/wp-admin/includes/list-table.php +0 -113
  243. data/lib/wp/wp-admin/includes/media.php +0 -3012
  244. data/lib/wp/wp-admin/includes/menu.php +0 -322
  245. data/lib/wp/wp-admin/includes/meta-boxes.php +0 -1119
  246. data/lib/wp/wp-admin/includes/misc.php +0 -845
  247. data/lib/wp/wp-admin/includes/ms-deprecated.php +0 -78
  248. data/lib/wp/wp-admin/includes/ms.php +0 -814
  249. data/lib/wp/wp-admin/includes/nav-menu.php +0 -1328
  250. data/lib/wp/wp-admin/includes/plugin-install.php +0 -550
  251. data/lib/wp/wp-admin/includes/plugin.php +0 -1899
  252. data/lib/wp/wp-admin/includes/post.php +0 -1661
  253. data/lib/wp/wp-admin/includes/revision.php +0 -228
  254. data/lib/wp/wp-admin/includes/schema.php +0 -1038
  255. data/lib/wp/wp-admin/includes/screen.php +0 -1179
  256. data/lib/wp/wp-admin/includes/taxonomy.php +0 -284
  257. data/lib/wp/wp-admin/includes/template.php +0 -2157
  258. data/lib/wp/wp-admin/includes/theme-install.php +0 -205
  259. data/lib/wp/wp-admin/includes/theme.php +0 -474
  260. data/lib/wp/wp-admin/includes/translation-install.php +0 -240
  261. data/lib/wp/wp-admin/includes/update-core.php +0 -1186
  262. data/lib/wp/wp-admin/includes/update.php +0 -432
  263. data/lib/wp/wp-admin/includes/upgrade.php +0 -2218
  264. data/lib/wp/wp-admin/includes/user.php +0 -442
  265. data/lib/wp/wp-admin/includes/widgets.php +0 -245
  266. data/lib/wp/wp-admin/index.php +0 -131
  267. data/lib/wp/wp-admin/install-helper.php +0 -199
  268. data/lib/wp/wp-admin/install.php +0 -305
  269. data/lib/wp/wp-admin/js/accordion.js +0 -143
  270. data/lib/wp/wp-admin/js/accordion.min.js +0 -1
  271. data/lib/wp/wp-admin/js/color-picker.js +0 -155
  272. data/lib/wp/wp-admin/js/color-picker.min.js +0 -1
  273. data/lib/wp/wp-admin/js/comment.js +0 -50
  274. data/lib/wp/wp-admin/js/comment.min.js +0 -1
  275. data/lib/wp/wp-admin/js/common.js +0 -804
  276. data/lib/wp/wp-admin/js/common.min.js +0 -1
  277. data/lib/wp/wp-admin/js/custom-background.js +0 -75
  278. data/lib/wp/wp-admin/js/custom-background.min.js +0 -1
  279. data/lib/wp/wp-admin/js/custom-header.js +0 -61
  280. data/lib/wp/wp-admin/js/customize-controls.js +0 -1305
  281. data/lib/wp/wp-admin/js/customize-controls.min.js +0 -1
  282. data/lib/wp/wp-admin/js/customize-widgets.js +0 -1882
  283. data/lib/wp/wp-admin/js/customize-widgets.min.js +0 -1
  284. data/lib/wp/wp-admin/js/dashboard.js +0 -190
  285. data/lib/wp/wp-admin/js/dashboard.min.js +0 -1
  286. data/lib/wp/wp-admin/js/edit-comments.js +0 -625
  287. data/lib/wp/wp-admin/js/edit-comments.min.js +0 -1
  288. data/lib/wp/wp-admin/js/editor-expand.js +0 -705
  289. data/lib/wp/wp-admin/js/editor-expand.min.js +0 -1
  290. data/lib/wp/wp-admin/js/editor.js +0 -324
  291. data/lib/wp/wp-admin/js/editor.min.js +0 -1
  292. data/lib/wp/wp-admin/js/farbtastic.js +0 -276
  293. data/lib/wp/wp-admin/js/gallery.js +0 -237
  294. data/lib/wp/wp-admin/js/gallery.min.js +0 -1
  295. data/lib/wp/wp-admin/js/image-edit.js +0 -633
  296. data/lib/wp/wp-admin/js/image-edit.min.js +0 -1
  297. data/lib/wp/wp-admin/js/inline-edit-post.js +0 -359
  298. data/lib/wp/wp-admin/js/inline-edit-post.min.js +0 -1
  299. data/lib/wp/wp-admin/js/inline-edit-tax.js +0 -142
  300. data/lib/wp/wp-admin/js/inline-edit-tax.min.js +0 -1
  301. data/lib/wp/wp-admin/js/iris.min.js +0 -4
  302. data/lib/wp/wp-admin/js/language-chooser.js +0 -26
  303. data/lib/wp/wp-admin/js/language-chooser.min.js +0 -1
  304. data/lib/wp/wp-admin/js/link.js +0 -69
  305. data/lib/wp/wp-admin/js/link.min.js +0 -1
  306. data/lib/wp/wp-admin/js/media-gallery.js +0 -26
  307. data/lib/wp/wp-admin/js/media-gallery.min.js +0 -1
  308. data/lib/wp/wp-admin/js/media-upload.js +0 -69
  309. data/lib/wp/wp-admin/js/media-upload.min.js +0 -1
  310. data/lib/wp/wp-admin/js/media.js +0 -111
  311. data/lib/wp/wp-admin/js/media.min.js +0 -1
  312. data/lib/wp/wp-admin/js/nav-menu.js +0 -1205
  313. data/lib/wp/wp-admin/js/nav-menu.min.js +0 -1
  314. data/lib/wp/wp-admin/js/password-strength-meter.js +0 -75
  315. data/lib/wp/wp-admin/js/password-strength-meter.min.js +0 -1
  316. data/lib/wp/wp-admin/js/plugin-install.js +0 -76
  317. data/lib/wp/wp-admin/js/plugin-install.min.js +0 -1
  318. data/lib/wp/wp-admin/js/post.js +0 -1094
  319. data/lib/wp/wp-admin/js/post.min.js +0 -1
  320. data/lib/wp/wp-admin/js/postbox.js +0 -199
  321. data/lib/wp/wp-admin/js/postbox.min.js +0 -1
  322. data/lib/wp/wp-admin/js/revisions.js +0 -1110
  323. data/lib/wp/wp-admin/js/revisions.min.js +0 -1
  324. data/lib/wp/wp-admin/js/set-post-thumbnail.js +0 -24
  325. data/lib/wp/wp-admin/js/set-post-thumbnail.min.js +0 -1
  326. data/lib/wp/wp-admin/js/svg-painter.js +0 -240
  327. data/lib/wp/wp-admin/js/svg-painter.min.js +0 -1
  328. data/lib/wp/wp-admin/js/tags.js +0 -72
  329. data/lib/wp/wp-admin/js/tags.min.js +0 -1
  330. data/lib/wp/wp-admin/js/theme.js +0 -1691
  331. data/lib/wp/wp-admin/js/theme.min.js +0 -1
  332. data/lib/wp/wp-admin/js/updates.js +0 -65
  333. data/lib/wp/wp-admin/js/updates.min.js +0 -1
  334. data/lib/wp/wp-admin/js/user-profile.js +0 -127
  335. data/lib/wp/wp-admin/js/user-profile.min.js +0 -1
  336. data/lib/wp/wp-admin/js/user-suggest.js +0 -30
  337. data/lib/wp/wp-admin/js/user-suggest.min.js +0 -1
  338. data/lib/wp/wp-admin/js/widgets.js +0 -494
  339. data/lib/wp/wp-admin/js/widgets.min.js +0 -1
  340. data/lib/wp/wp-admin/js/word-count.js +0 -44
  341. data/lib/wp/wp-admin/js/word-count.min.js +0 -1
  342. data/lib/wp/wp-admin/js/wp-fullscreen.js +0 -704
  343. data/lib/wp/wp-admin/js/wp-fullscreen.min.js +0 -1
  344. data/lib/wp/wp-admin/js/xfn.js +0 -17
  345. data/lib/wp/wp-admin/js/xfn.min.js +0 -1
  346. data/lib/wp/wp-admin/link-add.php +0 -29
  347. data/lib/wp/wp-admin/link-manager.php +0 -99
  348. data/lib/wp/wp-admin/link-parse-opml.php +0 -84
  349. data/lib/wp/wp-admin/link.php +0 -117
  350. data/lib/wp/wp-admin/load-scripts.php +0 -162
  351. data/lib/wp/wp-admin/load-styles.php +0 -153
  352. data/lib/wp/wp-admin/maint/repair.php +0 -124
  353. data/lib/wp/wp-admin/media-new.php +0 -84
  354. data/lib/wp/wp-admin/media-upload.php +0 -100
  355. data/lib/wp/wp-admin/media.php +0 -146
  356. data/lib/wp/wp-admin/menu-header.php +0 -227
  357. data/lib/wp/wp-admin/menu.php +0 -255
  358. data/lib/wp/wp-admin/moderation.php +0 -12
  359. data/lib/wp/wp-admin/ms-admin.php +0 -13
  360. data/lib/wp/wp-admin/ms-delete-site.php +0 -91
  361. data/lib/wp/wp-admin/ms-edit.php +0 -13
  362. data/lib/wp/wp-admin/ms-options.php +0 -12
  363. data/lib/wp/wp-admin/ms-sites.php +0 -13
  364. data/lib/wp/wp-admin/ms-themes.php +0 -13
  365. data/lib/wp/wp-admin/ms-upgrade-network.php +0 -13
  366. data/lib/wp/wp-admin/ms-users.php +0 -13
  367. data/lib/wp/wp-admin/my-sites.php +0 -145
  368. data/lib/wp/wp-admin/nav-menus.php +0 -798
  369. data/lib/wp/wp-admin/network.php +0 -561
  370. data/lib/wp/wp-admin/network/about.php +0 -16
  371. data/lib/wp/wp-admin/network/admin.php +0 -32
  372. data/lib/wp/wp-admin/network/credits.php +0 -16
  373. data/lib/wp/wp-admin/network/edit.php +0 -42
  374. data/lib/wp/wp-admin/network/freedoms.php +0 -16
  375. data/lib/wp/wp-admin/network/index.php +0 -79
  376. data/lib/wp/wp-admin/network/menu.php +0 -63
  377. data/lib/wp/wp-admin/network/plugin-editor.php +0 -16
  378. data/lib/wp/wp-admin/network/plugin-install.php +0 -19
  379. data/lib/wp/wp-admin/network/plugins.php +0 -16
  380. data/lib/wp/wp-admin/network/profile.php +0 -16
  381. data/lib/wp/wp-admin/network/settings.php +0 -347
  382. data/lib/wp/wp-admin/network/setup.php +0 -16
  383. data/lib/wp/wp-admin/network/site-info.php +0 -178
  384. data/lib/wp/wp-admin/network/site-new.php +0 -153
  385. data/lib/wp/wp-admin/network/site-settings.php +0 -173
  386. data/lib/wp/wp-admin/network/site-themes.php +0 -185
  387. data/lib/wp/wp-admin/network/site-users.php +0 -319
  388. data/lib/wp/wp-admin/network/sites.php +0 -275
  389. data/lib/wp/wp-admin/network/theme-editor.php +0 -16
  390. data/lib/wp/wp-admin/network/theme-install.php +0 -19
  391. data/lib/wp/wp-admin/network/themes.php +0 -291
  392. data/lib/wp/wp-admin/network/update-core.php +0 -16
  393. data/lib/wp/wp-admin/network/update.php +0 -19
  394. data/lib/wp/wp-admin/network/upgrade.php +0 -120
  395. data/lib/wp/wp-admin/network/user-edit.php +0 -16
  396. data/lib/wp/wp-admin/network/user-new.php +0 -106
  397. data/lib/wp/wp-admin/network/users.php +0 -296
  398. data/lib/wp/wp-admin/options-discussion.php +0 -273
  399. data/lib/wp/wp-admin/options-general.php +0 -355
  400. data/lib/wp/wp-admin/options-head.php +0 -18
  401. data/lib/wp/wp-admin/options-media.php +0 -136
  402. data/lib/wp/wp-admin/options-permalink.php +0 -289
  403. data/lib/wp/wp-admin/options-reading.php +0 -184
  404. data/lib/wp/wp-admin/options-writing.php +0 -194
  405. data/lib/wp/wp-admin/options.php +0 -265
  406. data/lib/wp/wp-admin/plugin-editor.php +0 -279
  407. data/lib/wp/wp-admin/plugin-install.php +0 -134
  408. data/lib/wp/wp-admin/plugins.php +0 -474
  409. data/lib/wp/wp-admin/post-new.php +0 -74
  410. data/lib/wp/wp-admin/post.php +0 -318
  411. data/lib/wp/wp-admin/press-this.php +0 -691
  412. data/lib/wp/wp-admin/profile.php +0 -18
  413. data/lib/wp/wp-admin/revision.php +0 -221
  414. data/lib/wp/wp-admin/setup-config.php +0 -345
  415. data/lib/wp/wp-admin/theme-editor.php +0 -243
  416. data/lib/wp/wp-admin/theme-install.php +0 -278
  417. data/lib/wp/wp-admin/themes.php +0 -374
  418. data/lib/wp/wp-admin/tools.php +0 -75
  419. data/lib/wp/wp-admin/update-core.php +0 -653
  420. data/lib/wp/wp-admin/update.php +0 -272
  421. data/lib/wp/wp-admin/upgrade-functions.php +0 -12
  422. data/lib/wp/wp-admin/upgrade.php +0 -116
  423. data/lib/wp/wp-admin/upload.php +0 -292
  424. data/lib/wp/wp-admin/user-edit.php +0 -557
  425. data/lib/wp/wp-admin/user-new.php +0 -439
  426. data/lib/wp/wp-admin/user/about.php +0 -13
  427. data/lib/wp/wp-admin/user/admin.php +0 -32
  428. data/lib/wp/wp-admin/user/credits.php +0 -13
  429. data/lib/wp/wp-admin/user/freedoms.php +0 -13
  430. data/lib/wp/wp-admin/user/index.php +0 -12
  431. data/lib/wp/wp-admin/user/menu.php +0 -22
  432. data/lib/wp/wp-admin/user/profile.php +0 -12
  433. data/lib/wp/wp-admin/user/user-edit.php +0 -12
  434. data/lib/wp/wp-admin/users.php +0 -460
  435. data/lib/wp/wp-admin/widgets.php +0 -442
  436. data/lib/wp/wp-blog-header.php +0 -18
  437. data/lib/wp/wp-comments-post.php +0 -164
  438. data/lib/wp/wp-config-sample.php +0 -80
  439. data/lib/wp/wp-content/index.php +0 -2
  440. data/lib/wp/wp-content/plugins/hello.php +0 -82
  441. data/lib/wp/wp-content/plugins/index.php +0 -2
  442. data/lib/wp/wp-content/themes/index.php +0 -2
  443. data/lib/wp/wp-content/themes/stump/.editorconfig +0 -11
  444. data/lib/wp/wp-content/themes/stump/.jshintrc +0 -16
  445. data/lib/wp/wp-content/themes/stump/404.php +0 -13
  446. data/lib/wp/wp-content/themes/stump/CHANGELOG.md +0 -333
  447. data/lib/wp/wp-content/themes/stump/CONTRIBUTING.md +0 -121
  448. data/lib/wp/wp-content/themes/stump/Gruntfile.js +0 -151
  449. data/lib/wp/wp-content/themes/stump/LICENSE.md +0 -19
  450. data/lib/wp/wp-content/themes/stump/assets/coffee/build/.gitkeep +0 -0
  451. data/lib/wp/wp-content/themes/stump/assets/css/editor-style.css +0 -548
  452. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  453. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.svg +0 -229
  454. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  455. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  456. data/lib/wp/wp-content/themes/stump/assets/img/.gitignore +0 -0
  457. data/lib/wp/wp-content/themes/stump/assets/js/_main.js +0 -63
  458. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/affix.js +0 -137
  459. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/alert.js +0 -88
  460. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/button.js +0 -107
  461. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/carousel.js +0 -205
  462. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/collapse.js +0 -170
  463. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/dropdown.js +0 -147
  464. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/modal.js +0 -243
  465. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/popover.js +0 -110
  466. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/scrollspy.js +0 -153
  467. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tab.js +0 -125
  468. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tooltip.js +0 -399
  469. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/transition.js +0 -48
  470. data/lib/wp/wp-content/themes/stump/assets/js/scripts.min.js +0 -1
  471. data/lib/wp/wp-content/themes/stump/assets/js/vendor/jquery-1.11.0.min.js +0 -4
  472. data/lib/wp/wp-content/themes/stump/assets/js/vendor/modernizr-2.7.0.min.js +0 -4
  473. data/lib/wp/wp-content/themes/stump/assets/sass/app.scss +0 -9
  474. data/lib/wp/wp-content/themes/stump/assets/sass/core/_variables.scss +0 -1
  475. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_alerts.scss +0 -67
  476. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_badges.scss +0 -55
  477. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_bootstrap.scss +0 -49
  478. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_breadcrumbs.scss +0 -26
  479. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_button-groups.scss +0 -226
  480. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_buttons.scss +0 -159
  481. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_carousel.scss +0 -232
  482. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_close.scss +0 -35
  483. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_code.scss +0 -63
  484. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_component-animations.scss +0 -29
  485. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_dropdowns.scss +0 -213
  486. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_forms.scss +0 -436
  487. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_glyphicons.scss +0 -233
  488. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_grid.scss +0 -84
  489. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_input-groups.scss +0 -162
  490. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_jumbotron.scss +0 -44
  491. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_labels.scss +0 -64
  492. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_list-group.scss +0 -110
  493. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_media.scss +0 -56
  494. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_mixins.scss +0 -947
  495. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_modals.scss +0 -139
  496. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navbar.scss +0 -620
  497. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navs.scss +0 -242
  498. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_normalize.scss +0 -423
  499. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pager.scss +0 -55
  500. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pagination.scss +0 -88
  501. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_panels.scss +0 -241
  502. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_popovers.scss +0 -133
  503. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_print.scss +0 -101
  504. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_progress-bars.scss +0 -80
  505. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_responsive-utilities.scss +0 -74
  506. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_scaffolding.scss +0 -134
  507. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tables.scss +0 -233
  508. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_theme.scss +0 -247
  509. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_thumbnails.scss +0 -38
  510. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tooltip.scss +0 -95
  511. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_type.scss +0 -284
  512. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_utilities.scss +0 -56
  513. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_variables.scss +0 -833
  514. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_wells.scss +0 -29
  515. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon-deprecated-upcoming.scss +0 -13
  516. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon.scss +0 -59
  517. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_button.scss +0 -273
  518. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_clearfix.scss +0 -29
  519. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_font-family.scss +0 -5
  520. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_hide-text.scss +0 -5
  521. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_html5-input-types.scss +0 -56
  522. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_position.scss +0 -42
  523. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_prefixer.scss +0 -49
  524. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_retina-image.scss +0 -32
  525. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_size.scss +0 -44
  526. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_timing-functions.scss +0 -32
  527. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_triangle.scss +0 -45
  528. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_animation.scss +0 -52
  529. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_appearance.scss +0 -3
  530. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_backface-visibility.scss +0 -6
  531. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background-image.scss +0 -48
  532. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background.scss +0 -103
  533. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-image.scss +0 -55
  534. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-radius.scss +0 -22
  535. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_box-sizing.scss +0 -4
  536. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_columns.scss +0 -47
  537. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_flex-box.scss +0 -52
  538. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_font-face.scss +0 -23
  539. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_hidpi-media-query.scss +0 -10
  540. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_image-rendering.scss +0 -13
  541. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_inline-block.scss +0 -8
  542. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_keyframes.scss +0 -43
  543. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_linear-gradient.scss +0 -41
  544. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_perspective.scss +0 -8
  545. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_placeholder.scss +0 -29
  546. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_radial-gradient.scss +0 -44
  547. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transform.scss +0 -15
  548. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transition.scss +0 -34
  549. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_user-select.scss +0 -3
  550. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_compact.scss +0 -11
  551. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_flex-grid.scss +0 -39
  552. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_grid-width.scss +0 -13
  553. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_linear-gradient.scss +0 -13
  554. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_modular-scale.scss +0 -40
  555. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_px-to-em.scss +0 -8
  556. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_radial-gradient.scss +0 -23
  557. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_tint-shade.scss +0 -9
  558. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_transition-property-name.scss +0 -22
  559. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_deprecated-webkit-gradient.scss +0 -39
  560. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_gradient-positions-parser.scss +0 -13
  561. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_linear-positions-parser.scss +0 -61
  562. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-arg-parser.scss +0 -69
  563. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-positions-parser.scss +0 -18
  564. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_render-gradients.scss +0 -26
  565. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_shape-size-stripper.scss +0 -10
  566. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan.sass +0 -11
  567. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_grid.sass +0 -161
  568. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_mixins.sass +0 -63
  569. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_utilities.sass +0 -24
  570. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_variables.sass +0 -42
  571. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat-helpers.scss +0 -8
  572. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat.scss +0 -21
  573. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_new-breakpoint.scss +0 -16
  574. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_private.scss +0 -107
  575. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_px-to-em.scss +0 -3
  576. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_fill-parent.scss +0 -7
  577. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_grid.scss +0 -5
  578. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_media.scss +0 -51
  579. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_omega.scss +0 -79
  580. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_outer-container.scss +0 -8
  581. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_pad.scss +0 -8
  582. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_private.scss +0 -50
  583. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_reset.scss +0 -12
  584. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_row.scss +0 -17
  585. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_shift.scss +0 -9
  586. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_span-columns.scss +0 -38
  587. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_to-deprecate.scss +0 -57
  588. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_visual-grid.scss +0 -41
  589. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_grid.scss +0 -7
  590. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_visual-grid.scss +0 -5
  591. data/lib/wp/wp-content/themes/stump/base.php +0 -36
  592. data/lib/wp/wp-content/themes/stump/functions.php +0 -19
  593. data/lib/wp/wp-content/themes/stump/index.php +0 -21
  594. data/lib/wp/wp-content/themes/stump/lang/ar.mo +0 -0
  595. data/lib/wp/wp-content/themes/stump/lang/ar.po +0 -270
  596. data/lib/wp/wp-content/themes/stump/lang/bg_BG.mo +0 -0
  597. data/lib/wp/wp-content/themes/stump/lang/bg_BG.po +0 -338
  598. data/lib/wp/wp-content/themes/stump/lang/ca.mo +0 -0
  599. data/lib/wp/wp-content/themes/stump/lang/ca.po +0 -517
  600. data/lib/wp/wp-content/themes/stump/lang/da_DK.mo +0 -0
  601. data/lib/wp/wp-content/themes/stump/lang/da_DK.po +0 -305
  602. data/lib/wp/wp-content/themes/stump/lang/de_DE.mo +0 -0
  603. data/lib/wp/wp-content/themes/stump/lang/de_DE.po +0 -271
  604. data/lib/wp/wp-content/themes/stump/lang/el.mo +0 -0
  605. data/lib/wp/wp-content/themes/stump/lang/el.po +0 -319
  606. data/lib/wp/wp-content/themes/stump/lang/es_ES.mo +0 -0
  607. data/lib/wp/wp-content/themes/stump/lang/es_ES.po +0 -270
  608. data/lib/wp/wp-content/themes/stump/lang/et.mo +0 -0
  609. data/lib/wp/wp-content/themes/stump/lang/et.po +0 -262
  610. data/lib/wp/wp-content/themes/stump/lang/fa_IR.mo +0 -0
  611. data/lib/wp/wp-content/themes/stump/lang/fa_IR.po +0 -273
  612. data/lib/wp/wp-content/themes/stump/lang/fi_FI.mo +0 -0
  613. data/lib/wp/wp-content/themes/stump/lang/fi_FI.po +0 -367
  614. data/lib/wp/wp-content/themes/stump/lang/fr_FR.mo +0 -0
  615. data/lib/wp/wp-content/themes/stump/lang/fr_FR.po +0 -336
  616. data/lib/wp/wp-content/themes/stump/lang/he_IL.mo +0 -0
  617. data/lib/wp/wp-content/themes/stump/lang/he_IL.po +0 -336
  618. data/lib/wp/wp-content/themes/stump/lang/hu_HU.mo +0 -0
  619. data/lib/wp/wp-content/themes/stump/lang/hu_HU.po +0 -271
  620. data/lib/wp/wp-content/themes/stump/lang/id_ID.mo +0 -0
  621. data/lib/wp/wp-content/themes/stump/lang/id_ID.po +0 -278
  622. data/lib/wp/wp-content/themes/stump/lang/it_IT.mo +0 -0
  623. data/lib/wp/wp-content/themes/stump/lang/it_IT.po +0 -269
  624. data/lib/wp/wp-content/themes/stump/lang/ja.mo +0 -0
  625. data/lib/wp/wp-content/themes/stump/lang/ja.po +0 -267
  626. data/lib/wp/wp-content/themes/stump/lang/ko_KR.mo +0 -0
  627. data/lib/wp/wp-content/themes/stump/lang/ko_KR.po +0 -282
  628. data/lib/wp/wp-content/themes/stump/lang/mk_MK.mo +0 -0
  629. data/lib/wp/wp-content/themes/stump/lang/mk_MK.po +0 -297
  630. data/lib/wp/wp-content/themes/stump/lang/ms_MY.mo +0 -0
  631. data/lib/wp/wp-content/themes/stump/lang/ms_MY.po +0 -342
  632. data/lib/wp/wp-content/themes/stump/lang/nb_NO.mo +0 -0
  633. data/lib/wp/wp-content/themes/stump/lang/nb_NO.po +0 -517
  634. data/lib/wp/wp-content/themes/stump/lang/nl_NL.mo +0 -0
  635. data/lib/wp/wp-content/themes/stump/lang/nl_NL.po +0 -261
  636. data/lib/wp/wp-content/themes/stump/lang/nn_NO.mo +0 -0
  637. data/lib/wp/wp-content/themes/stump/lang/nn_NO.po +0 -517
  638. data/lib/wp/wp-content/themes/stump/lang/pl_PL.mo +0 -0
  639. data/lib/wp/wp-content/themes/stump/lang/pl_PL.po +0 -283
  640. data/lib/wp/wp-content/themes/stump/lang/pt_BR.mo +0 -0
  641. data/lib/wp/wp-content/themes/stump/lang/pt_BR.po +0 -394
  642. data/lib/wp/wp-content/themes/stump/lang/ro_RO.mo +0 -0
  643. data/lib/wp/wp-content/themes/stump/lang/ro_RO.po +0 -271
  644. data/lib/wp/wp-content/themes/stump/lang/roots.pot +0 -244
  645. data/lib/wp/wp-content/themes/stump/lang/ru_RU.mo +0 -0
  646. data/lib/wp/wp-content/themes/stump/lang/ru_RU.po +0 -255
  647. data/lib/wp/wp-content/themes/stump/lang/sk_SK.mo +0 -0
  648. data/lib/wp/wp-content/themes/stump/lang/sk_SK.po +0 -267
  649. data/lib/wp/wp-content/themes/stump/lang/sr_RS.mo +0 -0
  650. data/lib/wp/wp-content/themes/stump/lang/sr_RS.pot +0 -261
  651. data/lib/wp/wp-content/themes/stump/lang/sv_SE.mo +0 -0
  652. data/lib/wp/wp-content/themes/stump/lang/sv_SE.po +0 -323
  653. data/lib/wp/wp-content/themes/stump/lang/tr_TR.mo +0 -0
  654. data/lib/wp/wp-content/themes/stump/lang/tr_TR.po +0 -405
  655. data/lib/wp/wp-content/themes/stump/lang/vi_VN.mo +0 -0
  656. data/lib/wp/wp-content/themes/stump/lang/vi_VN.po +0 -516
  657. data/lib/wp/wp-content/themes/stump/lang/zh_CN.mo +0 -0
  658. data/lib/wp/wp-content/themes/stump/lang/zh_CN.po +0 -329
  659. data/lib/wp/wp-content/themes/stump/lang/zh_TW.mo +0 -0
  660. data/lib/wp/wp-content/themes/stump/lang/zh_TW.po +0 -261
  661. data/lib/wp/wp-content/themes/stump/lib/activation.php +0 -215
  662. data/lib/wp/wp-content/themes/stump/lib/cleanup.php +0 -261
  663. data/lib/wp/wp-content/themes/stump/lib/comments.php +0 -52
  664. data/lib/wp/wp-content/themes/stump/lib/config.php +0 -79
  665. data/lib/wp/wp-content/themes/stump/lib/custom.php +0 -4
  666. data/lib/wp/wp-content/themes/stump/lib/gallery.php +0 -130
  667. data/lib/wp/wp-content/themes/stump/lib/init.php +0 -25
  668. data/lib/wp/wp-content/themes/stump/lib/nav.php +0 -93
  669. data/lib/wp/wp-content/themes/stump/lib/relative-urls.php +0 -50
  670. data/lib/wp/wp-content/themes/stump/lib/scripts.php +0 -67
  671. data/lib/wp/wp-content/themes/stump/lib/sidebar.php +0 -43
  672. data/lib/wp/wp-content/themes/stump/lib/titles.php +0 -37
  673. data/lib/wp/wp-content/themes/stump/lib/utils.php +0 -14
  674. data/lib/wp/wp-content/themes/stump/lib/widgets.php +0 -133
  675. data/lib/wp/wp-content/themes/stump/lib/wrapper.php +0 -49
  676. data/lib/wp/wp-content/themes/stump/package.json +0 -32
  677. data/lib/wp/wp-content/themes/stump/page.php +0 -2
  678. data/lib/wp/wp-content/themes/stump/screenshot.png +0 -0
  679. data/lib/wp/wp-content/themes/stump/single.php +0 -1
  680. data/lib/wp/wp-content/themes/stump/style.css +0 -11
  681. data/lib/wp/wp-content/themes/stump/template-custom.php +0 -8
  682. data/lib/wp/wp-content/themes/stump/templates/comment.php +0 -14
  683. data/lib/wp/wp-content/themes/stump/templates/comments.php +0 -80
  684. data/lib/wp/wp-content/themes/stump/templates/content-page.php +0 -4
  685. data/lib/wp/wp-content/themes/stump/templates/content-single.php +0 -15
  686. data/lib/wp/wp-content/themes/stump/templates/content.php +0 -9
  687. data/lib/wp/wp-content/themes/stump/templates/entry-meta.php +0 -2
  688. data/lib/wp/wp-content/themes/stump/templates/footer.php +0 -8
  689. data/lib/wp/wp-content/themes/stump/templates/head.php +0 -12
  690. data/lib/wp/wp-content/themes/stump/templates/header-top-navbar.php +0 -21
  691. data/lib/wp/wp-content/themes/stump/templates/header.php +0 -14
  692. data/lib/wp/wp-content/themes/stump/templates/page-header.php +0 -5
  693. data/lib/wp/wp-content/themes/stump/templates/searchform.php +0 -9
  694. data/lib/wp/wp-content/themes/stump/templates/sidebar.php +0 -1
  695. data/lib/wp/wp-cron.php +0 -115
  696. data/lib/wp/wp-includes/ID3/getid3.lib.php +0 -1376
  697. data/lib/wp/wp-includes/ID3/getid3.php +0 -1796
  698. data/lib/wp/wp-includes/ID3/license.commercial.txt +0 -27
  699. data/lib/wp/wp-includes/ID3/license.txt +0 -29
  700. data/lib/wp/wp-includes/ID3/module.audio-video.asf.php +0 -2013
  701. data/lib/wp/wp-includes/ID3/module.audio-video.flv.php +0 -745
  702. data/lib/wp/wp-includes/ID3/module.audio-video.matroska.php +0 -1751
  703. data/lib/wp/wp-includes/ID3/module.audio-video.quicktime.php +0 -2246
  704. data/lib/wp/wp-includes/ID3/module.audio-video.riff.php +0 -2586
  705. data/lib/wp/wp-includes/ID3/module.audio.ac3.php +0 -474
  706. data/lib/wp/wp-includes/ID3/module.audio.dts.php +0 -291
  707. data/lib/wp/wp-includes/ID3/module.audio.flac.php +0 -443
  708. data/lib/wp/wp-includes/ID3/module.audio.mp3.php +0 -2012
  709. data/lib/wp/wp-includes/ID3/module.audio.ogg.php +0 -756
  710. data/lib/wp/wp-includes/ID3/module.tag.apetag.php +0 -371
  711. data/lib/wp/wp-includes/ID3/module.tag.id3v1.php +0 -360
  712. data/lib/wp/wp-includes/ID3/module.tag.id3v2.php +0 -3424
  713. data/lib/wp/wp-includes/ID3/module.tag.lyrics3.php +0 -294
  714. data/lib/wp/wp-includes/ID3/readme.txt +0 -604
  715. data/lib/wp/wp-includes/SimplePie/Author.php +0 -157
  716. data/lib/wp/wp-includes/SimplePie/Cache.php +0 -133
  717. data/lib/wp/wp-includes/SimplePie/Cache/Base.php +0 -114
  718. data/lib/wp/wp-includes/SimplePie/Cache/DB.php +0 -137
  719. data/lib/wp/wp-includes/SimplePie/Cache/File.php +0 -173
  720. data/lib/wp/wp-includes/SimplePie/Cache/Memcache.php +0 -183
  721. data/lib/wp/wp-includes/SimplePie/Cache/MySQL.php +0 -438
  722. data/lib/wp/wp-includes/SimplePie/Caption.php +0 -210
  723. data/lib/wp/wp-includes/SimplePie/Category.php +0 -157
  724. data/lib/wp/wp-includes/SimplePie/Content/Type/Sniffer.php +0 -332
  725. data/lib/wp/wp-includes/SimplePie/Copyright.php +0 -130
  726. data/lib/wp/wp-includes/SimplePie/Core.php +0 -57
  727. data/lib/wp/wp-includes/SimplePie/Credit.php +0 -156
  728. data/lib/wp/wp-includes/SimplePie/Decode/HTML/Entities.php +0 -617
  729. data/lib/wp/wp-includes/SimplePie/Enclosure.php +0 -1380
  730. data/lib/wp/wp-includes/SimplePie/Exception.php +0 -52
  731. data/lib/wp/wp-includes/SimplePie/File.php +0 -292
  732. data/lib/wp/wp-includes/SimplePie/HTTP/Parser.php +0 -500
  733. data/lib/wp/wp-includes/SimplePie/IRI.php +0 -1238
  734. data/lib/wp/wp-includes/SimplePie/Item.php +0 -2964
  735. data/lib/wp/wp-includes/SimplePie/Locator.php +0 -372
  736. data/lib/wp/wp-includes/SimplePie/Misc.php +0 -2247
  737. data/lib/wp/wp-includes/SimplePie/Net/IPv6.php +0 -276
  738. data/lib/wp/wp-includes/SimplePie/Parse/Date.php +0 -983
  739. data/lib/wp/wp-includes/SimplePie/Parser.php +0 -407
  740. data/lib/wp/wp-includes/SimplePie/Rating.php +0 -129
  741. data/lib/wp/wp-includes/SimplePie/Registry.php +0 -225
  742. data/lib/wp/wp-includes/SimplePie/Restriction.php +0 -155
  743. data/lib/wp/wp-includes/SimplePie/Sanitize.php +0 -554
  744. data/lib/wp/wp-includes/SimplePie/Source.php +0 -611
  745. data/lib/wp/wp-includes/SimplePie/XML/Declaration/Parser.php +0 -362
  746. data/lib/wp/wp-includes/SimplePie/gzdecode.php +0 -371
  747. data/lib/wp/wp-includes/Text/Diff.php +0 -450
  748. data/lib/wp/wp-includes/Text/Diff/Engine/native.php +0 -436
  749. data/lib/wp/wp-includes/Text/Diff/Engine/shell.php +0 -162
  750. data/lib/wp/wp-includes/Text/Diff/Engine/string.php +0 -248
  751. data/lib/wp/wp-includes/Text/Diff/Engine/xdiff.php +0 -64
  752. data/lib/wp/wp-includes/Text/Diff/Renderer.php +0 -235
  753. data/lib/wp/wp-includes/Text/Diff/Renderer/inline.php +0 -206
  754. data/lib/wp/wp-includes/admin-bar.php +0 -870
  755. data/lib/wp/wp-includes/atomlib.php +0 -352
  756. data/lib/wp/wp-includes/author-template.php +0 -471
  757. data/lib/wp/wp-includes/bookmark-template.php +0 -298
  758. data/lib/wp/wp-includes/bookmark.php +0 -416
  759. data/lib/wp/wp-includes/cache.php +0 -704
  760. data/lib/wp/wp-includes/canonical.php +0 -586
  761. data/lib/wp/wp-includes/capabilities.php +0 -1539
  762. data/lib/wp/wp-includes/category-template.php +0 -1407
  763. data/lib/wp/wp-includes/category.php +0 -343
  764. data/lib/wp/wp-includes/certificates/ca-bundle.crt +0 -3785
  765. data/lib/wp/wp-includes/class-IXR.php +0 -1100
  766. data/lib/wp/wp-includes/class-feed.php +0 -140
  767. data/lib/wp/wp-includes/class-http.php +0 -2245
  768. data/lib/wp/wp-includes/class-json.php +0 -936
  769. data/lib/wp/wp-includes/class-oembed.php +0 -579
  770. data/lib/wp/wp-includes/class-phpass.php +0 -260
  771. data/lib/wp/wp-includes/class-phpmailer.php +0 -3265
  772. data/lib/wp/wp-includes/class-pop3.php +0 -652
  773. data/lib/wp/wp-includes/class-simplepie.php +0 -3119
  774. data/lib/wp/wp-includes/class-smtp.php +0 -943
  775. data/lib/wp/wp-includes/class-snoopy.php +0 -1256
  776. data/lib/wp/wp-includes/class-wp-admin-bar.php +0 -517
  777. data/lib/wp/wp-includes/class-wp-ajax-response.php +0 -199
  778. data/lib/wp/wp-includes/class-wp-customize-control.php +0 -1124
  779. data/lib/wp/wp-includes/class-wp-customize-manager.php +0 -1272
  780. data/lib/wp/wp-includes/class-wp-customize-panel.php +0 -200
  781. data/lib/wp/wp-includes/class-wp-customize-section.php +0 -196
  782. data/lib/wp/wp-includes/class-wp-customize-setting.php +0 -554
  783. data/lib/wp/wp-includes/class-wp-customize-widgets.php +0 -1556
  784. data/lib/wp/wp-includes/class-wp-editor.php +0 -1435
  785. data/lib/wp/wp-includes/class-wp-embed.php +0 -373
  786. data/lib/wp/wp-includes/class-wp-error.php +0 -276
  787. data/lib/wp/wp-includes/class-wp-http-ixr-client.php +0 -97
  788. data/lib/wp/wp-includes/class-wp-image-editor-gd.php +0 -459
  789. data/lib/wp/wp-includes/class-wp-image-editor-imagick.php +0 -512
  790. data/lib/wp/wp-includes/class-wp-image-editor.php +0 -475
  791. data/lib/wp/wp-includes/class-wp-theme.php +0 -1235
  792. data/lib/wp/wp-includes/class-wp-walker.php +0 -471
  793. data/lib/wp/wp-includes/class-wp-xmlrpc-server.php +0 -5984
  794. data/lib/wp/wp-includes/class-wp.php +0 -782
  795. data/lib/wp/wp-includes/class.wp-dependencies.php +0 -509
  796. data/lib/wp/wp-includes/class.wp-scripts.php +0 -247
  797. data/lib/wp/wp-includes/class.wp-styles.php +0 -210
  798. data/lib/wp/wp-includes/comment-template.php +0 -2286
  799. data/lib/wp/wp-includes/comment.php +0 -2606
  800. data/lib/wp/wp-includes/compat.php +0 -125
  801. data/lib/wp/wp-includes/cron.php +0 -469
  802. data/lib/wp/wp-includes/css/admin-bar-rtl.css +0 -1099
  803. data/lib/wp/wp-includes/css/admin-bar-rtl.min.css +0 -1
  804. data/lib/wp/wp-includes/css/admin-bar.css +0 -1099
  805. data/lib/wp/wp-includes/css/admin-bar.min.css +0 -1
  806. data/lib/wp/wp-includes/css/buttons-rtl.css +0 -364
  807. data/lib/wp/wp-includes/css/buttons-rtl.min.css +0 -1
  808. data/lib/wp/wp-includes/css/buttons.css +0 -364
  809. data/lib/wp/wp-includes/css/buttons.min.css +0 -1
  810. data/lib/wp/wp-includes/css/dashicons.css +0 -893
  811. data/lib/wp/wp-includes/css/dashicons.min.css +0 -1
  812. data/lib/wp/wp-includes/css/editor-rtl.css +0 -1993
  813. data/lib/wp/wp-includes/css/editor-rtl.min.css +0 -1
  814. data/lib/wp/wp-includes/css/editor.css +0 -1993
  815. data/lib/wp/wp-includes/css/editor.min.css +0 -1
  816. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.css +0 -343
  817. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.min.css +0 -19
  818. data/lib/wp/wp-includes/css/jquery-ui-dialog.css +0 -343
  819. data/lib/wp/wp-includes/css/jquery-ui-dialog.min.css +0 -19
  820. data/lib/wp/wp-includes/css/media-views-rtl.css +0 -2568
  821. data/lib/wp/wp-includes/css/media-views-rtl.min.css +0 -1
  822. data/lib/wp/wp-includes/css/media-views.css +0 -2568
  823. data/lib/wp/wp-includes/css/media-views.min.css +0 -1
  824. data/lib/wp/wp-includes/css/wp-auth-check-rtl.css +0 -100
  825. data/lib/wp/wp-includes/css/wp-auth-check-rtl.min.css +0 -1
  826. data/lib/wp/wp-includes/css/wp-auth-check.css +0 -100
  827. data/lib/wp/wp-includes/css/wp-auth-check.min.css +0 -1
  828. data/lib/wp/wp-includes/css/wp-pointer-rtl.css +0 -212
  829. data/lib/wp/wp-includes/css/wp-pointer-rtl.min.css +0 -1
  830. data/lib/wp/wp-includes/css/wp-pointer.css +0 -212
  831. data/lib/wp/wp-includes/css/wp-pointer.min.css +0 -1
  832. data/lib/wp/wp-includes/date.php +0 -475
  833. data/lib/wp/wp-includes/default-constants.php +0 -323
  834. data/lib/wp/wp-includes/default-filters.php +0 -307
  835. data/lib/wp/wp-includes/default-widgets.php +0 -1423
  836. data/lib/wp/wp-includes/deprecated.php +0 -3501
  837. data/lib/wp/wp-includes/feed-atom-comments.php +0 -115
  838. data/lib/wp/wp-includes/feed-atom.php +0 -87
  839. data/lib/wp/wp-includes/feed-rdf.php +0 -81
  840. data/lib/wp/wp-includes/feed-rss.php +0 -46
  841. data/lib/wp/wp-includes/feed-rss2-comments.php +0 -97
  842. data/lib/wp/wp-includes/feed-rss2.php +0 -115
  843. data/lib/wp/wp-includes/feed.php +0 -659
  844. data/lib/wp/wp-includes/fonts/dashicons.eot +0 -0
  845. data/lib/wp/wp-includes/fonts/dashicons.svg +0 -250
  846. data/lib/wp/wp-includes/fonts/dashicons.ttf +0 -0
  847. data/lib/wp/wp-includes/fonts/dashicons.woff +0 -0
  848. data/lib/wp/wp-includes/formatting.php +0 -4006
  849. data/lib/wp/wp-includes/functions.php +0 -4631
  850. data/lib/wp/wp-includes/functions.wp-scripts.php +0 -258
  851. data/lib/wp/wp-includes/functions.wp-styles.php +0 -245
  852. data/lib/wp/wp-includes/general-template.php +0 -2982
  853. data/lib/wp/wp-includes/http.php +0 -551
  854. data/lib/wp/wp-includes/images/admin-bar-sprite-2x.png +0 -0
  855. data/lib/wp/wp-includes/images/admin-bar-sprite.png +0 -0
  856. data/lib/wp/wp-includes/images/arrow-pointer-blue-2x.png +0 -0
  857. data/lib/wp/wp-includes/images/arrow-pointer-blue.png +0 -0
  858. data/lib/wp/wp-includes/images/blank.gif +0 -0
  859. data/lib/wp/wp-includes/images/crystal/archive.png +0 -0
  860. data/lib/wp/wp-includes/images/crystal/audio.png +0 -0
  861. data/lib/wp/wp-includes/images/crystal/code.png +0 -0
  862. data/lib/wp/wp-includes/images/crystal/default.png +0 -0
  863. data/lib/wp/wp-includes/images/crystal/document.png +0 -0
  864. data/lib/wp/wp-includes/images/crystal/interactive.png +0 -0
  865. data/lib/wp/wp-includes/images/crystal/license.txt +0 -9
  866. data/lib/wp/wp-includes/images/crystal/spreadsheet.png +0 -0
  867. data/lib/wp/wp-includes/images/crystal/text.png +0 -0
  868. data/lib/wp/wp-includes/images/crystal/video.png +0 -0
  869. data/lib/wp/wp-includes/images/down_arrow-2x.gif +0 -0
  870. data/lib/wp/wp-includes/images/down_arrow.gif +0 -0
  871. data/lib/wp/wp-includes/images/icon-pointer-flag-2x.png +0 -0
  872. data/lib/wp/wp-includes/images/icon-pointer-flag.png +0 -0
  873. data/lib/wp/wp-includes/images/media/archive.png +0 -0
  874. data/lib/wp/wp-includes/images/media/audio.png +0 -0
  875. data/lib/wp/wp-includes/images/media/code.png +0 -0
  876. data/lib/wp/wp-includes/images/media/default.png +0 -0
  877. data/lib/wp/wp-includes/images/media/document.png +0 -0
  878. data/lib/wp/wp-includes/images/media/interactive.png +0 -0
  879. data/lib/wp/wp-includes/images/media/spreadsheet.png +0 -0
  880. data/lib/wp/wp-includes/images/media/text.png +0 -0
  881. data/lib/wp/wp-includes/images/media/video.png +0 -0
  882. data/lib/wp/wp-includes/images/rss-2x.png +0 -0
  883. data/lib/wp/wp-includes/images/rss.png +0 -0
  884. data/lib/wp/wp-includes/images/smilies/icon_arrow.gif +0 -0
  885. data/lib/wp/wp-includes/images/smilies/icon_biggrin.gif +0 -0
  886. data/lib/wp/wp-includes/images/smilies/icon_confused.gif +0 -0
  887. data/lib/wp/wp-includes/images/smilies/icon_cool.gif +0 -0
  888. data/lib/wp/wp-includes/images/smilies/icon_cry.gif +0 -0
  889. data/lib/wp/wp-includes/images/smilies/icon_eek.gif +0 -0
  890. data/lib/wp/wp-includes/images/smilies/icon_evil.gif +0 -0
  891. data/lib/wp/wp-includes/images/smilies/icon_exclaim.gif +0 -0
  892. data/lib/wp/wp-includes/images/smilies/icon_idea.gif +0 -0
  893. data/lib/wp/wp-includes/images/smilies/icon_lol.gif +0 -0
  894. data/lib/wp/wp-includes/images/smilies/icon_mad.gif +0 -0
  895. data/lib/wp/wp-includes/images/smilies/icon_mrgreen.gif +0 -0
  896. data/lib/wp/wp-includes/images/smilies/icon_neutral.gif +0 -0
  897. data/lib/wp/wp-includes/images/smilies/icon_question.gif +0 -0
  898. data/lib/wp/wp-includes/images/smilies/icon_razz.gif +0 -0
  899. data/lib/wp/wp-includes/images/smilies/icon_redface.gif +0 -0
  900. data/lib/wp/wp-includes/images/smilies/icon_rolleyes.gif +0 -0
  901. data/lib/wp/wp-includes/images/smilies/icon_sad.gif +0 -0
  902. data/lib/wp/wp-includes/images/smilies/icon_smile.gif +0 -0
  903. data/lib/wp/wp-includes/images/smilies/icon_surprised.gif +0 -0
  904. data/lib/wp/wp-includes/images/smilies/icon_twisted.gif +0 -0
  905. data/lib/wp/wp-includes/images/smilies/icon_wink.gif +0 -0
  906. data/lib/wp/wp-includes/images/spinner-2x.gif +0 -0
  907. data/lib/wp/wp-includes/images/spinner.gif +0 -0
  908. data/lib/wp/wp-includes/images/toggle-arrow-2x.png +0 -0
  909. data/lib/wp/wp-includes/images/toggle-arrow.png +0 -0
  910. data/lib/wp/wp-includes/images/uploader-icons-2x.png +0 -0
  911. data/lib/wp/wp-includes/images/uploader-icons.png +0 -0
  912. data/lib/wp/wp-includes/images/wlw/wp-comments.png +0 -0
  913. data/lib/wp/wp-includes/images/wlw/wp-icon.png +0 -0
  914. data/lib/wp/wp-includes/images/wlw/wp-watermark.png +0 -0
  915. data/lib/wp/wp-includes/images/wpicons-2x.png +0 -0
  916. data/lib/wp/wp-includes/images/wpicons.png +0 -0
  917. data/lib/wp/wp-includes/images/wpspin-2x.gif +0 -0
  918. data/lib/wp/wp-includes/images/wpspin.gif +0 -0
  919. data/lib/wp/wp-includes/images/xit-2x.gif +0 -0
  920. data/lib/wp/wp-includes/images/xit.gif +0 -0
  921. data/lib/wp/wp-includes/js/admin-bar.js +0 -365
  922. data/lib/wp/wp-includes/js/admin-bar.min.js +0 -1
  923. data/lib/wp/wp-includes/js/autosave.js +0 -589
  924. data/lib/wp/wp-includes/js/autosave.min.js +0 -1
  925. data/lib/wp/wp-includes/js/backbone.min.js +0 -1
  926. data/lib/wp/wp-includes/js/colorpicker.js +0 -707
  927. data/lib/wp/wp-includes/js/colorpicker.min.js +0 -1
  928. data/lib/wp/wp-includes/js/comment-reply.js +0 -47
  929. data/lib/wp/wp-includes/js/comment-reply.min.js +0 -1
  930. data/lib/wp/wp-includes/js/crop/cropper.css +0 -165
  931. data/lib/wp/wp-includes/js/crop/cropper.js +0 -516
  932. data/lib/wp/wp-includes/js/crop/marqueeHoriz.gif +0 -0
  933. data/lib/wp/wp-includes/js/crop/marqueeVert.gif +0 -0
  934. data/lib/wp/wp-includes/js/customize-base.js +0 -617
  935. data/lib/wp/wp-includes/js/customize-base.min.js +0 -1
  936. data/lib/wp/wp-includes/js/customize-loader.js +0 -246
  937. data/lib/wp/wp-includes/js/customize-loader.min.js +0 -1
  938. data/lib/wp/wp-includes/js/customize-models.js +0 -247
  939. data/lib/wp/wp-includes/js/customize-models.min.js +0 -1
  940. data/lib/wp/wp-includes/js/customize-preview-widgets.js +0 -129
  941. data/lib/wp/wp-includes/js/customize-preview-widgets.min.js +0 -1
  942. data/lib/wp/wp-includes/js/customize-preview.js +0 -154
  943. data/lib/wp/wp-includes/js/customize-preview.min.js +0 -1
  944. data/lib/wp/wp-includes/js/customize-views.js +0 -231
  945. data/lib/wp/wp-includes/js/customize-views.min.js +0 -1
  946. data/lib/wp/wp-includes/js/heartbeat.js +0 -738
  947. data/lib/wp/wp-includes/js/heartbeat.min.js +0 -1
  948. data/lib/wp/wp-includes/js/hoverIntent.js +0 -115
  949. data/lib/wp/wp-includes/js/hoverIntent.min.js +0 -1
  950. data/lib/wp/wp-includes/js/imgareaselect/border-anim-h.gif +0 -0
  951. data/lib/wp/wp-includes/js/imgareaselect/border-anim-v.gif +0 -0
  952. data/lib/wp/wp-includes/js/imgareaselect/imgareaselect.css +0 -41
  953. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.js +0 -1205
  954. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +0 -1
  955. data/lib/wp/wp-includes/js/jcrop/Jcrop.gif +0 -0
  956. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.css +0 -29
  957. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.js +0 -22
  958. data/lib/wp/wp-includes/js/jquery/jquery-migrate.js +0 -521
  959. data/lib/wp/wp-includes/js/jquery/jquery-migrate.min.js +0 -2
  960. data/lib/wp/wp-includes/js/jquery/jquery.color.min.js +0 -2
  961. data/lib/wp/wp-includes/js/jquery/jquery.form.js +0 -1193
  962. data/lib/wp/wp-includes/js/jquery/jquery.form.min.js +0 -11
  963. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.js +0 -134
  964. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.min.js +0 -1
  965. data/lib/wp/wp-includes/js/jquery/jquery.js +0 -5
  966. data/lib/wp/wp-includes/js/jquery/jquery.masonry.min.js +0 -11
  967. data/lib/wp/wp-includes/js/jquery/jquery.query.js +0 -11
  968. data/lib/wp/wp-includes/js/jquery/jquery.schedule.js +0 -36
  969. data/lib/wp/wp-includes/js/jquery/jquery.serialize-object.js +0 -31
  970. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.js +0 -99
  971. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.min.js +0 -1
  972. data/lib/wp/wp-includes/js/jquery/jquery.ui.touch-punch.js +0 -11
  973. data/lib/wp/wp-includes/js/jquery/suggest.js +0 -316
  974. data/lib/wp/wp-includes/js/jquery/suggest.min.js +0 -1
  975. data/lib/wp/wp-includes/js/jquery/ui/accordion.min.js +0 -11
  976. data/lib/wp/wp-includes/js/jquery/ui/autocomplete.min.js +0 -11
  977. data/lib/wp/wp-includes/js/jquery/ui/button.min.js +0 -11
  978. data/lib/wp/wp-includes/js/jquery/ui/core.min.js +0 -11
  979. data/lib/wp/wp-includes/js/jquery/ui/datepicker.min.js +0 -12
  980. data/lib/wp/wp-includes/js/jquery/ui/dialog.min.js +0 -11
  981. data/lib/wp/wp-includes/js/jquery/ui/draggable.min.js +0 -11
  982. data/lib/wp/wp-includes/js/jquery/ui/droppable.min.js +0 -11
  983. data/lib/wp/wp-includes/js/jquery/ui/effect-blind.min.js +0 -11
  984. data/lib/wp/wp-includes/js/jquery/ui/effect-bounce.min.js +0 -11
  985. data/lib/wp/wp-includes/js/jquery/ui/effect-clip.min.js +0 -11
  986. data/lib/wp/wp-includes/js/jquery/ui/effect-drop.min.js +0 -11
  987. data/lib/wp/wp-includes/js/jquery/ui/effect-explode.min.js +0 -11
  988. data/lib/wp/wp-includes/js/jquery/ui/effect-fade.min.js +0 -11
  989. data/lib/wp/wp-includes/js/jquery/ui/effect-fold.min.js +0 -11
  990. data/lib/wp/wp-includes/js/jquery/ui/effect-highlight.min.js +0 -11
  991. data/lib/wp/wp-includes/js/jquery/ui/effect-puff.min.js +0 -11
  992. data/lib/wp/wp-includes/js/jquery/ui/effect-pulsate.min.js +0 -11
  993. data/lib/wp/wp-includes/js/jquery/ui/effect-scale.min.js +0 -11
  994. data/lib/wp/wp-includes/js/jquery/ui/effect-shake.min.js +0 -11
  995. data/lib/wp/wp-includes/js/jquery/ui/effect-size.min.js +0 -11
  996. data/lib/wp/wp-includes/js/jquery/ui/effect-slide.min.js +0 -11
  997. data/lib/wp/wp-includes/js/jquery/ui/effect-transfer.min.js +0 -11
  998. data/lib/wp/wp-includes/js/jquery/ui/effect.min.js +0 -21
  999. data/lib/wp/wp-includes/js/jquery/ui/menu.min.js +0 -11
  1000. data/lib/wp/wp-includes/js/jquery/ui/mouse.min.js +0 -11
  1001. data/lib/wp/wp-includes/js/jquery/ui/position.min.js +0 -11
  1002. data/lib/wp/wp-includes/js/jquery/ui/progressbar.min.js +0 -11
  1003. data/lib/wp/wp-includes/js/jquery/ui/resizable.min.js +0 -11
  1004. data/lib/wp/wp-includes/js/jquery/ui/selectable.min.js +0 -11
  1005. data/lib/wp/wp-includes/js/jquery/ui/selectmenu.min.js +0 -11
  1006. data/lib/wp/wp-includes/js/jquery/ui/slider.min.js +0 -11
  1007. data/lib/wp/wp-includes/js/jquery/ui/sortable.min.js +0 -11
  1008. data/lib/wp/wp-includes/js/jquery/ui/spinner.min.js +0 -11
  1009. data/lib/wp/wp-includes/js/jquery/ui/tabs.min.js +0 -11
  1010. data/lib/wp/wp-includes/js/jquery/ui/tooltip.min.js +0 -11
  1011. data/lib/wp/wp-includes/js/jquery/ui/widget.min.js +0 -11
  1012. data/lib/wp/wp-includes/js/json2.js +0 -480
  1013. data/lib/wp/wp-includes/js/json2.min.js +0 -1
  1014. data/lib/wp/wp-includes/js/masonry.min.js +0 -1
  1015. data/lib/wp/wp-includes/js/mce-view.js +0 -829
  1016. data/lib/wp/wp-includes/js/mce-view.min.js +0 -1
  1017. data/lib/wp/wp-includes/js/media-audiovideo.js +0 -831
  1018. data/lib/wp/wp-includes/js/media-audiovideo.min.js +0 -1
  1019. data/lib/wp/wp-includes/js/media-editor.js +0 -1114
  1020. data/lib/wp/wp-includes/js/media-editor.min.js +0 -1
  1021. data/lib/wp/wp-includes/js/media-grid.js +0 -732
  1022. data/lib/wp/wp-includes/js/media-grid.min.js +0 -1
  1023. data/lib/wp/wp-includes/js/media-models.js +0 -1362
  1024. data/lib/wp/wp-includes/js/media-models.min.js +0 -1
  1025. data/lib/wp/wp-includes/js/media-views.js +0 -7484
  1026. data/lib/wp/wp-includes/js/media-views.min.js +0 -3
  1027. data/lib/wp/wp-includes/js/mediaelement/background.png +0 -0
  1028. data/lib/wp/wp-includes/js/mediaelement/bigplay.png +0 -0
  1029. data/lib/wp/wp-includes/js/mediaelement/bigplay.svg +0 -1
  1030. data/lib/wp/wp-includes/js/mediaelement/controls.png +0 -0
  1031. data/lib/wp/wp-includes/js/mediaelement/controls.svg +0 -1
  1032. data/lib/wp/wp-includes/js/mediaelement/flashmediaelement.swf +0 -0
  1033. data/lib/wp/wp-includes/js/mediaelement/loading.gif +0 -0
  1034. data/lib/wp/wp-includes/js/mediaelement/mediaelement-and-player.min.js +0 -181
  1035. data/lib/wp/wp-includes/js/mediaelement/mediaelementplayer.min.css +0 -1
  1036. data/lib/wp/wp-includes/js/mediaelement/silverlightmediaelement.xap +0 -0
  1037. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.css +0 -274
  1038. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.js +0 -34
  1039. data/lib/wp/wp-includes/js/mediaelement/wp-playlist.js +0 -175
  1040. data/lib/wp/wp-includes/js/plupload/handlers.js +0 -488
  1041. data/lib/wp/wp-includes/js/plupload/handlers.min.js +0 -1
  1042. data/lib/wp/wp-includes/js/plupload/license.txt +0 -339
  1043. data/lib/wp/wp-includes/js/plupload/plupload.flash.swf +0 -0
  1044. data/lib/wp/wp-includes/js/plupload/plupload.full.min.js +0 -28
  1045. data/lib/wp/wp-includes/js/plupload/plupload.silverlight.xap +0 -0
  1046. data/lib/wp/wp-includes/js/plupload/wp-plupload.js +0 -376
  1047. data/lib/wp/wp-includes/js/plupload/wp-plupload.min.js +0 -1
  1048. data/lib/wp/wp-includes/js/quicktags.js +0 -652
  1049. data/lib/wp/wp-includes/js/quicktags.min.js +0 -1
  1050. data/lib/wp/wp-includes/js/shortcode.js +0 -356
  1051. data/lib/wp/wp-includes/js/shortcode.min.js +0 -1
  1052. data/lib/wp/wp-includes/js/swfobject.js +0 -4
  1053. data/lib/wp/wp-includes/js/swfupload/handlers.js +0 -376
  1054. data/lib/wp/wp-includes/js/swfupload/handlers.min.js +0 -1
  1055. data/lib/wp/wp-includes/js/swfupload/license.txt +0 -32
  1056. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.cookies.js +0 -53
  1057. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.queue.js +0 -98
  1058. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.speed.js +0 -342
  1059. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.swfobject.js +0 -105
  1060. data/lib/wp/wp-includes/js/swfupload/swfupload.js +0 -980
  1061. data/lib/wp/wp-includes/js/swfupload/swfupload.swf +0 -0
  1062. data/lib/wp/wp-includes/js/thickbox/loadingAnimation.gif +0 -0
  1063. data/lib/wp/wp-includes/js/thickbox/macFFBgHack.png +0 -0
  1064. data/lib/wp/wp-includes/js/thickbox/thickbox.css +0 -138
  1065. data/lib/wp/wp-includes/js/thickbox/thickbox.js +0 -314
  1066. data/lib/wp/wp-includes/js/tinymce/langs/wp-langs-en.js +0 -519
  1067. data/lib/wp/wp-includes/js/tinymce/license.txt +0 -504
  1068. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.js +0 -370
  1069. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +0 -1
  1070. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +0 -112
  1071. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +0 -1
  1072. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css +0 -212
  1073. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.js +0 -304
  1074. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +0 -1
  1075. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.js +0 -64
  1076. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +0 -1
  1077. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +0 -136
  1078. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +0 -1
  1079. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.js +0 -30
  1080. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.min.js +0 -1
  1081. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.js +0 -450
  1082. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.min.js +0 -1
  1083. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.js +0 -786
  1084. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.min.js +0 -1
  1085. data/lib/wp/wp-includes/js/tinymce/plugins/media/moxieplayer.swf +0 -0
  1086. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.js +0 -774
  1087. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.min.js +0 -1
  1088. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.js +0 -1553
  1089. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.min.js +0 -1
  1090. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +0 -125
  1091. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +0 -1
  1092. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.js +0 -272
  1093. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +0 -1
  1094. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.js +0 -513
  1095. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +0 -1
  1096. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js +0 -207
  1097. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js +0 -1
  1098. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js +0 -92
  1099. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js +0 -1
  1100. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +0 -1035
  1101. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +0 -1
  1102. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +0 -78
  1103. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js +0 -1
  1104. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.js +0 -130
  1105. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js +0 -1
  1106. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.js +0 -63
  1107. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.min.js +0 -1
  1108. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.js +0 -694
  1109. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +0 -1
  1110. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +0 -1
  1111. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.min.css +0 -1
  1112. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/readme.md +0 -1
  1113. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  1114. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -62
  1115. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  1116. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  1117. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  1118. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +0 -63
  1119. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  1120. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  1121. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif +0 -0
  1122. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/loader.gif +0 -0
  1123. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/object.gif +0 -0
  1124. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/trans.gif +0 -0
  1125. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css +0 -1
  1126. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.min.css +0 -1
  1127. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/audio.png +0 -0
  1128. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png +0 -0
  1129. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no-alt.png +0 -0
  1130. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/embedded.png +0 -0
  1131. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png +0 -0
  1132. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery.png +0 -0
  1133. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png +0 -0
  1134. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more.png +0 -0
  1135. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png +0 -0
  1136. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png +0 -0
  1137. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png +0 -0
  1138. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png +0 -0
  1139. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/video.png +0 -0
  1140. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/wp-content.css +0 -618
  1141. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.js +0 -617
  1142. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.min.js +0 -1
  1143. data/lib/wp/wp-includes/js/tinymce/tiny_mce_popup.js +0 -539
  1144. data/lib/wp/wp-includes/js/tinymce/tinymce.min.js +0 -11
  1145. data/lib/wp/wp-includes/js/tinymce/utils/editable_selects.js +0 -70
  1146. data/lib/wp/wp-includes/js/tinymce/utils/form_utils.js +0 -210
  1147. data/lib/wp/wp-includes/js/tinymce/utils/mctabs.js +0 -164
  1148. data/lib/wp/wp-includes/js/tinymce/utils/validate.js +0 -252
  1149. data/lib/wp/wp-includes/js/tinymce/wp-mce-help.php +0 -145
  1150. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.js.gz +0 -0
  1151. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.php +0 -39
  1152. data/lib/wp/wp-includes/js/tw-sack.js +0 -193
  1153. data/lib/wp/wp-includes/js/tw-sack.min.js +0 -1
  1154. data/lib/wp/wp-includes/js/underscore.min.js +0 -1
  1155. data/lib/wp/wp-includes/js/utils.js +0 -197
  1156. data/lib/wp/wp-includes/js/utils.min.js +0 -1
  1157. data/lib/wp/wp-includes/js/wp-ajax-response.js +0 -64
  1158. data/lib/wp/wp-includes/js/wp-ajax-response.min.js +0 -1
  1159. data/lib/wp/wp-includes/js/wp-auth-check.js +0 -112
  1160. data/lib/wp/wp-includes/js/wp-auth-check.min.js +0 -1
  1161. data/lib/wp/wp-includes/js/wp-backbone.js +0 -386
  1162. data/lib/wp/wp-includes/js/wp-backbone.min.js +0 -1
  1163. data/lib/wp/wp-includes/js/wp-list-revisions.js +0 -24
  1164. data/lib/wp/wp-includes/js/wp-list-revisions.min.js +0 -1
  1165. data/lib/wp/wp-includes/js/wp-lists.js +0 -469
  1166. data/lib/wp/wp-includes/js/wp-lists.min.js +0 -1
  1167. data/lib/wp/wp-includes/js/wp-pointer.js +0 -282
  1168. data/lib/wp/wp-includes/js/wp-pointer.min.js +0 -1
  1169. data/lib/wp/wp-includes/js/wp-util.js +0 -106
  1170. data/lib/wp/wp-includes/js/wp-util.min.js +0 -1
  1171. data/lib/wp/wp-includes/js/wpdialog.js +0 -19
  1172. data/lib/wp/wp-includes/js/wpdialog.min.js +0 -1
  1173. data/lib/wp/wp-includes/js/wplink.js +0 -615
  1174. data/lib/wp/wp-includes/js/wplink.min.js +0 -1
  1175. data/lib/wp/wp-includes/js/zxcvbn-async.js +0 -18
  1176. data/lib/wp/wp-includes/js/zxcvbn-async.min.js +0 -1
  1177. data/lib/wp/wp-includes/js/zxcvbn.min.js +0 -47
  1178. data/lib/wp/wp-includes/kses.php +0 -1526
  1179. data/lib/wp/wp-includes/l10n.php +0 -908
  1180. data/lib/wp/wp-includes/link-template.php +0 -3141
  1181. data/lib/wp/wp-includes/load.php +0 -828
  1182. data/lib/wp/wp-includes/locale.php +0 -368
  1183. data/lib/wp/wp-includes/media-template.php +0 -1235
  1184. data/lib/wp/wp-includes/media.php +0 -3329
  1185. data/lib/wp/wp-includes/meta.php +0 -1221
  1186. data/lib/wp/wp-includes/ms-blogs.php +0 -939
  1187. data/lib/wp/wp-includes/ms-default-constants.php +0 -153
  1188. data/lib/wp/wp-includes/ms-default-filters.php +0 -82
  1189. data/lib/wp/wp-includes/ms-deprecated.php +0 -347
  1190. data/lib/wp/wp-includes/ms-files.php +0 -82
  1191. data/lib/wp/wp-includes/ms-functions.php +0 -2476
  1192. data/lib/wp/wp-includes/ms-load.php +0 -458
  1193. data/lib/wp/wp-includes/ms-settings.php +0 -213
  1194. data/lib/wp/wp-includes/nav-menu-template.php +0 -678
  1195. data/lib/wp/wp-includes/nav-menu.php +0 -895
  1196. data/lib/wp/wp-includes/option.php +0 -1440
  1197. data/lib/wp/wp-includes/pluggable-deprecated.php +0 -192
  1198. data/lib/wp/wp-includes/pluggable.php +0 -2283
  1199. data/lib/wp/wp-includes/plugin.php +0 -920
  1200. data/lib/wp/wp-includes/pomo/entry.php +0 -78
  1201. data/lib/wp/wp-includes/pomo/mo.php +0 -262
  1202. data/lib/wp/wp-includes/pomo/po.php +0 -384
  1203. data/lib/wp/wp-includes/pomo/streams.php +0 -209
  1204. data/lib/wp/wp-includes/pomo/translations.php +0 -275
  1205. data/lib/wp/wp-includes/post-formats.php +0 -243
  1206. data/lib/wp/wp-includes/post-template.php +0 -1766
  1207. data/lib/wp/wp-includes/post-thumbnail-template.php +0 -142
  1208. data/lib/wp/wp-includes/post.php +0 -5842
  1209. data/lib/wp/wp-includes/query.php +0 -4666
  1210. data/lib/wp/wp-includes/registration-functions.php +0 -7
  1211. data/lib/wp/wp-includes/registration.php +0 -7
  1212. data/lib/wp/wp-includes/revision.php +0 -657
  1213. data/lib/wp/wp-includes/rewrite.php +0 -2180
  1214. data/lib/wp/wp-includes/rss-functions.php +0 -9
  1215. data/lib/wp/wp-includes/rss.php +0 -936
  1216. data/lib/wp/wp-includes/script-loader.php +0 -1045
  1217. data/lib/wp/wp-includes/session.php +0 -430
  1218. data/lib/wp/wp-includes/shortcodes.php +0 -410
  1219. data/lib/wp/wp-includes/taxonomy.php +0 -4006
  1220. data/lib/wp/wp-includes/template-loader.php +0 -76
  1221. data/lib/wp/wp-includes/template.php +0 -505
  1222. data/lib/wp/wp-includes/theme-compat/comments-popup.php +0 -128
  1223. data/lib/wp/wp-includes/theme-compat/comments.php +0 -101
  1224. data/lib/wp/wp-includes/theme-compat/footer.php +0 -30
  1225. data/lib/wp/wp-includes/theme-compat/header.php +0 -49
  1226. data/lib/wp/wp-includes/theme-compat/sidebar.php +0 -83
  1227. data/lib/wp/wp-includes/theme.php +0 -2014
  1228. data/lib/wp/wp-includes/update.php +0 -674
  1229. data/lib/wp/wp-includes/user.php +0 -2292
  1230. data/lib/wp/wp-includes/vars.php +0 -144
  1231. data/lib/wp/wp-includes/version.php +0 -35
  1232. data/lib/wp/wp-includes/widgets.php +0 -1514
  1233. data/lib/wp/wp-includes/wlwmanifest.xml +0 -43
  1234. data/lib/wp/wp-includes/wp-db.php +0 -2190
  1235. data/lib/wp/wp-includes/wp-diff.php +0 -523
  1236. data/lib/wp/wp-links-opml.php +0 -80
  1237. data/lib/wp/wp-load.php +0 -73
  1238. data/lib/wp/wp-login.php +0 -952
  1239. data/lib/wp/wp-mail.php +0 -260
  1240. data/lib/wp/wp-settings.php +0 -374
  1241. data/lib/wp/wp-signup.php +0 -749
  1242. data/lib/wp/wp-trackback.php +0 -127
  1243. data/lib/wp/xmlrpc.php +0 -101
@@ -1,4666 +0,0 @@
1
- <?php
2
- /**
3
- * WordPress Query API
4
- *
5
- * The query API attempts to get which part of WordPress the user is on. It
6
- * also provides functionality for getting URL query information.
7
- *
8
- * @link http://codex.wordpress.org/The_Loop More information on The Loop.
9
- *
10
- * @package WordPress
11
- * @subpackage Query
12
- */
13
-
14
- /**
15
- * Retrieve variable in the WP_Query class.
16
- *
17
- * @see WP_Query::get()
18
- * @since 1.5.0
19
- * @uses $wp_query
20
- *
21
- * @param string $var The variable key to retrieve.
22
- * @param mixed $default Value to return if the query variable is not set. Default ''.
23
- * @return mixed
24
- */
25
- function get_query_var( $var, $default = '' ) {
26
- global $wp_query;
27
-
28
- return $wp_query->get( $var, $default );
29
- }
30
-
31
- /**
32
- * Retrieve the currently-queried object. Wrapper for $wp_query->get_queried_object()
33
- *
34
- * @uses WP_Query::get_queried_object
35
- *
36
- * @since 3.1.0
37
- * @access public
38
- *
39
- * @return object
40
- */
41
- function get_queried_object() {
42
- global $wp_query;
43
- return $wp_query->get_queried_object();
44
- }
45
-
46
- /**
47
- * Retrieve ID of the current queried object. Wrapper for $wp_query->get_queried_object_id()
48
- *
49
- * @uses WP_Query::get_queried_object_id()
50
- *
51
- * @since 3.1.0
52
- * @access public
53
- *
54
- * @return int
55
- */
56
- function get_queried_object_id() {
57
- global $wp_query;
58
- return $wp_query->get_queried_object_id();
59
- }
60
-
61
- /**
62
- * Set query variable.
63
- *
64
- * @see WP_Query::set()
65
- * @since 2.2.0
66
- * @uses $wp_query
67
- *
68
- * @param string $var Query variable key.
69
- * @param mixed $value
70
- * @return null
71
- */
72
- function set_query_var($var, $value) {
73
- global $wp_query;
74
-
75
- return $wp_query->set($var, $value);
76
- }
77
-
78
- /**
79
- * Set up The Loop with query parameters.
80
- *
81
- * This will override the current WordPress Loop and shouldn't be used more than
82
- * once. This must not be used within the WordPress Loop.
83
- *
84
- * @since 1.5.0
85
- * @uses $wp_query
86
- *
87
- * @param string $query
88
- * @return array List of posts
89
- */
90
- function query_posts($query) {
91
- $GLOBALS['wp_query'] = new WP_Query();
92
- return $GLOBALS['wp_query']->query($query);
93
- }
94
-
95
- /**
96
- * Destroy the previous query and set up a new query.
97
- *
98
- * This should be used after {@link query_posts()} and before another {@link
99
- * query_posts()}. This will remove obscure bugs that occur when the previous
100
- * wp_query object is not destroyed properly before another is set up.
101
- *
102
- * @since 2.3.0
103
- * @uses $wp_query
104
- */
105
- function wp_reset_query() {
106
- $GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
107
- wp_reset_postdata();
108
- }
109
-
110
- /**
111
- * After looping through a separate query, this function restores
112
- * the $post global to the current post in the main query.
113
- *
114
- * @since 3.0.0
115
- * @uses $wp_query
116
- */
117
- function wp_reset_postdata() {
118
- global $wp_query;
119
-
120
- if ( isset( $wp_query ) ) {
121
- $wp_query->reset_postdata();
122
- }
123
- }
124
-
125
- /*
126
- * Query type checks.
127
- */
128
-
129
- /**
130
- * Is the query for an existing archive page?
131
- *
132
- * Month, Year, Category, Author, Post Type archive...
133
- *
134
- * @see WP_Query::is_archive()
135
- * @since 1.5.0
136
- * @uses $wp_query
137
- *
138
- * @return bool
139
- */
140
- function is_archive() {
141
- global $wp_query;
142
-
143
- if ( ! isset( $wp_query ) ) {
144
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
145
- return false;
146
- }
147
-
148
- return $wp_query->is_archive();
149
- }
150
-
151
- /**
152
- * Is the query for an existing post type archive page?
153
- *
154
- * @see WP_Query::is_post_type_archive()
155
- * @since 3.1.0
156
- * @uses $wp_query
157
- *
158
- * @param mixed $post_types Optional. Post type or array of posts types to check against.
159
- * @return bool
160
- */
161
- function is_post_type_archive( $post_types = '' ) {
162
- global $wp_query;
163
-
164
- if ( ! isset( $wp_query ) ) {
165
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
166
- return false;
167
- }
168
-
169
- return $wp_query->is_post_type_archive( $post_types );
170
- }
171
-
172
- /**
173
- * Is the query for an existing attachment page?
174
- *
175
- * @see WP_Query::is_attachment()
176
- * @since 2.0.0
177
- * @uses $wp_query
178
- *
179
- * @param mixed $attachment Attachment ID, title, slug, or array of such.
180
- * @return bool
181
- */
182
- function is_attachment( $attachment = '' ) {
183
- global $wp_query;
184
-
185
- if ( ! isset( $wp_query ) ) {
186
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
187
- return false;
188
- }
189
-
190
- return $wp_query->is_attachment( $attachment );
191
- }
192
-
193
- /**
194
- * Is the query for an existing author archive page?
195
- *
196
- * If the $author parameter is specified, this function will additionally
197
- * check if the query is for one of the authors specified.
198
- *
199
- * @see WP_Query::is_author()
200
- * @since 1.5.0
201
- * @uses $wp_query
202
- *
203
- * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames
204
- * @return bool
205
- */
206
- function is_author( $author = '' ) {
207
- global $wp_query;
208
-
209
- if ( ! isset( $wp_query ) ) {
210
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
211
- return false;
212
- }
213
-
214
- return $wp_query->is_author( $author );
215
- }
216
-
217
- /**
218
- * Is the query for an existing category archive page?
219
- *
220
- * If the $category parameter is specified, this function will additionally
221
- * check if the query is for one of the categories specified.
222
- *
223
- * @see WP_Query::is_category()
224
- * @since 1.5.0
225
- * @uses $wp_query
226
- *
227
- * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs.
228
- * @return bool
229
- */
230
- function is_category( $category = '' ) {
231
- global $wp_query;
232
-
233
- if ( ! isset( $wp_query ) ) {
234
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
235
- return false;
236
- }
237
-
238
- return $wp_query->is_category( $category );
239
- }
240
-
241
- /**
242
- * Is the query for an existing tag archive page?
243
- *
244
- * If the $tag parameter is specified, this function will additionally
245
- * check if the query is for one of the tags specified.
246
- *
247
- * @see WP_Query::is_tag()
248
- * @since 2.3.0
249
- * @uses $wp_query
250
- *
251
- * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
252
- * @return bool
253
- */
254
- function is_tag( $tag = '' ) {
255
- global $wp_query;
256
-
257
- if ( ! isset( $wp_query ) ) {
258
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
259
- return false;
260
- }
261
-
262
- return $wp_query->is_tag( $tag );
263
- }
264
-
265
- /**
266
- * Is the query for an existing taxonomy archive page?
267
- *
268
- * If the $taxonomy parameter is specified, this function will additionally
269
- * check if the query is for that specific $taxonomy.
270
- *
271
- * If the $term parameter is specified in addition to the $taxonomy parameter,
272
- * this function will additionally check if the query is for one of the terms
273
- * specified.
274
- *
275
- * @see WP_Query::is_tax()
276
- * @since 2.5.0
277
- * @uses $wp_query
278
- *
279
- * @param mixed $taxonomy Optional. Taxonomy slug or slugs.
280
- * @param mixed $term Optional. Term ID, name, slug or array of Term IDs, names, and slugs.
281
- * @return bool
282
- */
283
- function is_tax( $taxonomy = '', $term = '' ) {
284
- global $wp_query;
285
-
286
- if ( ! isset( $wp_query ) ) {
287
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
288
- return false;
289
- }
290
-
291
- return $wp_query->is_tax( $taxonomy, $term );
292
- }
293
-
294
- /**
295
- * Whether the current URL is within the comments popup window.
296
- *
297
- * @see WP_Query::is_comments_popup()
298
- * @since 1.5.0
299
- * @uses $wp_query
300
- *
301
- * @return bool
302
- */
303
- function is_comments_popup() {
304
- global $wp_query;
305
-
306
- if ( ! isset( $wp_query ) ) {
307
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
308
- return false;
309
- }
310
-
311
- return $wp_query->is_comments_popup();
312
- }
313
-
314
- /**
315
- * Is the query for an existing date archive?
316
- *
317
- * @see WP_Query::is_date()
318
- * @since 1.5.0
319
- * @uses $wp_query
320
- *
321
- * @return bool
322
- */
323
- function is_date() {
324
- global $wp_query;
325
-
326
- if ( ! isset( $wp_query ) ) {
327
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
328
- return false;
329
- }
330
-
331
- return $wp_query->is_date();
332
- }
333
-
334
- /**
335
- * Is the query for an existing day archive?
336
- *
337
- * @see WP_Query::is_day()
338
- * @since 1.5.0
339
- * @uses $wp_query
340
- *
341
- * @return bool
342
- */
343
- function is_day() {
344
- global $wp_query;
345
-
346
- if ( ! isset( $wp_query ) ) {
347
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
348
- return false;
349
- }
350
-
351
- return $wp_query->is_day();
352
- }
353
-
354
- /**
355
- * Is the query for a feed?
356
- *
357
- * @see WP_Query::is_feed()
358
- * @since 1.5.0
359
- * @uses $wp_query
360
- *
361
- * @param string|array $feeds Optional feed types to check.
362
- * @return bool
363
- */
364
- function is_feed( $feeds = '' ) {
365
- global $wp_query;
366
-
367
- if ( ! isset( $wp_query ) ) {
368
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
369
- return false;
370
- }
371
-
372
- return $wp_query->is_feed( $feeds );
373
- }
374
-
375
- /**
376
- * Is the query for a comments feed?
377
- *
378
- * @see WP_Query::is_comments_feed()
379
- * @since 3.0.0
380
- * @uses $wp_query
381
- *
382
- * @return bool
383
- */
384
- function is_comment_feed() {
385
- global $wp_query;
386
-
387
- if ( ! isset( $wp_query ) ) {
388
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
389
- return false;
390
- }
391
-
392
- return $wp_query->is_comment_feed();
393
- }
394
-
395
- /**
396
- * Is the query for the front page of the site?
397
- *
398
- * This is for what is displayed at your site's main URL.
399
- *
400
- * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_on_front'.
401
- *
402
- * If you set a static page for the front page of your site, this function will return
403
- * true when viewing that page.
404
- *
405
- * Otherwise the same as @see is_home()
406
- *
407
- * @see WP_Query::is_front_page()
408
- * @since 2.5.0
409
- * @uses is_home()
410
- * @uses get_option()
411
- *
412
- * @return bool True, if front of site.
413
- */
414
- function is_front_page() {
415
- global $wp_query;
416
-
417
- if ( ! isset( $wp_query ) ) {
418
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
419
- return false;
420
- }
421
-
422
- return $wp_query->is_front_page();
423
- }
424
-
425
- /**
426
- * Is the query for the blog homepage?
427
- *
428
- * This is the page which shows the time based blog content of your site.
429
- *
430
- * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_for_posts'.
431
- *
432
- * If you set a static page for the front page of your site, this function will return
433
- * true only on the page you set as the "Posts page".
434
- *
435
- * @see is_front_page()
436
- *
437
- * @see WP_Query::is_home()
438
- * @since 1.5.0
439
- * @uses $wp_query
440
- *
441
- * @return bool True if blog view homepage.
442
- */
443
- function is_home() {
444
- global $wp_query;
445
-
446
- if ( ! isset( $wp_query ) ) {
447
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
448
- return false;
449
- }
450
-
451
- return $wp_query->is_home();
452
- }
453
-
454
- /**
455
- * Is the query for an existing month archive?
456
- *
457
- * @see WP_Query::is_month()
458
- * @since 1.5.0
459
- * @uses $wp_query
460
- *
461
- * @return bool
462
- */
463
- function is_month() {
464
- global $wp_query;
465
-
466
- if ( ! isset( $wp_query ) ) {
467
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
468
- return false;
469
- }
470
-
471
- return $wp_query->is_month();
472
- }
473
-
474
- /**
475
- * Is the query for an existing single page?
476
- *
477
- * If the $page parameter is specified, this function will additionally
478
- * check if the query is for one of the pages specified.
479
- *
480
- * @see is_single()
481
- * @see is_singular()
482
- *
483
- * @see WP_Query::is_page()
484
- * @since 1.5.0
485
- * @uses $wp_query
486
- *
487
- * @param mixed $page Page ID, title, slug, or array of such.
488
- * @return bool
489
- */
490
- function is_page( $page = '' ) {
491
- global $wp_query;
492
-
493
- if ( ! isset( $wp_query ) ) {
494
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
495
- return false;
496
- }
497
-
498
- return $wp_query->is_page( $page );
499
- }
500
-
501
- /**
502
- * Is the query for paged result and not for the first page?
503
- *
504
- * @see WP_Query::is_paged()
505
- * @since 1.5.0
506
- * @uses $wp_query
507
- *
508
- * @return bool
509
- */
510
- function is_paged() {
511
- global $wp_query;
512
-
513
- if ( ! isset( $wp_query ) ) {
514
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
515
- return false;
516
- }
517
-
518
- return $wp_query->is_paged();
519
- }
520
-
521
- /**
522
- * Is the query for a post or page preview?
523
- *
524
- * @see WP_Query::is_preview()
525
- * @since 2.0.0
526
- * @uses $wp_query
527
- *
528
- * @return bool
529
- */
530
- function is_preview() {
531
- global $wp_query;
532
-
533
- if ( ! isset( $wp_query ) ) {
534
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
535
- return false;
536
- }
537
-
538
- return $wp_query->is_preview();
539
- }
540
-
541
- /**
542
- * Is the query for the robots file?
543
- *
544
- * @see WP_Query::is_robots()
545
- * @since 2.1.0
546
- * @uses $wp_query
547
- *
548
- * @return bool
549
- */
550
- function is_robots() {
551
- global $wp_query;
552
-
553
- if ( ! isset( $wp_query ) ) {
554
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
555
- return false;
556
- }
557
-
558
- return $wp_query->is_robots();
559
- }
560
-
561
- /**
562
- * Is the query for a search?
563
- *
564
- * @see WP_Query::is_search()
565
- * @since 1.5.0
566
- * @uses $wp_query
567
- *
568
- * @return bool
569
- */
570
- function is_search() {
571
- global $wp_query;
572
-
573
- if ( ! isset( $wp_query ) ) {
574
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
575
- return false;
576
- }
577
-
578
- return $wp_query->is_search();
579
- }
580
-
581
- /**
582
- * Is the query for an existing single post?
583
- *
584
- * Works for any post type, except attachments and pages
585
- *
586
- * If the $post parameter is specified, this function will additionally
587
- * check if the query is for one of the Posts specified.
588
- *
589
- * @see is_page()
590
- * @see is_singular()
591
- *
592
- * @see WP_Query::is_single()
593
- * @since 1.5.0
594
- * @uses $wp_query
595
- *
596
- * @param mixed $post Post ID, title, slug, or array of such.
597
- * @return bool
598
- */
599
- function is_single( $post = '' ) {
600
- global $wp_query;
601
-
602
- if ( ! isset( $wp_query ) ) {
603
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
604
- return false;
605
- }
606
-
607
- return $wp_query->is_single( $post );
608
- }
609
-
610
- /**
611
- * Is the query for an existing single post of any post type (post, attachment, page, ... )?
612
- *
613
- * If the $post_types parameter is specified, this function will additionally
614
- * check if the query is for one of the Posts Types specified.
615
- *
616
- * @see is_page()
617
- * @see is_single()
618
- *
619
- * @see WP_Query::is_singular()
620
- * @since 1.5.0
621
- * @uses $wp_query
622
- *
623
- * @param mixed $post_types Optional. Post Type or array of Post Types
624
- * @return bool
625
- */
626
- function is_singular( $post_types = '' ) {
627
- global $wp_query;
628
-
629
- if ( ! isset( $wp_query ) ) {
630
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
631
- return false;
632
- }
633
-
634
- return $wp_query->is_singular( $post_types );
635
- }
636
-
637
- /**
638
- * Is the query for a specific time?
639
- *
640
- * @see WP_Query::is_time()
641
- * @since 1.5.0
642
- * @uses $wp_query
643
- *
644
- * @return bool
645
- */
646
- function is_time() {
647
- global $wp_query;
648
-
649
- if ( ! isset( $wp_query ) ) {
650
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
651
- return false;
652
- }
653
-
654
- return $wp_query->is_time();
655
- }
656
-
657
- /**
658
- * Is the query for a trackback endpoint call?
659
- *
660
- * @see WP_Query::is_trackback()
661
- * @since 1.5.0
662
- * @uses $wp_query
663
- *
664
- * @return bool
665
- */
666
- function is_trackback() {
667
- global $wp_query;
668
-
669
- if ( ! isset( $wp_query ) ) {
670
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
671
- return false;
672
- }
673
-
674
- return $wp_query->is_trackback();
675
- }
676
-
677
- /**
678
- * Is the query for an existing year archive?
679
- *
680
- * @see WP_Query::is_year()
681
- * @since 1.5.0
682
- * @uses $wp_query
683
- *
684
- * @return bool
685
- */
686
- function is_year() {
687
- global $wp_query;
688
-
689
- if ( ! isset( $wp_query ) ) {
690
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
691
- return false;
692
- }
693
-
694
- return $wp_query->is_year();
695
- }
696
-
697
- /**
698
- * Is the query a 404 (returns no results)?
699
- *
700
- * @see WP_Query::is_404()
701
- * @since 1.5.0
702
- * @uses $wp_query
703
- *
704
- * @return bool
705
- */
706
- function is_404() {
707
- global $wp_query;
708
-
709
- if ( ! isset( $wp_query ) ) {
710
- _doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
711
- return false;
712
- }
713
-
714
- return $wp_query->is_404();
715
- }
716
-
717
- /**
718
- * Is the query the main query?
719
- *
720
- * @since 3.3.0
721
- *
722
- * @return bool
723
- */
724
- function is_main_query() {
725
- if ( 'pre_get_posts' === current_filter() ) {
726
- $message = sprintf( __( 'In <code>%1$s</code>, use the <code>%2$s</code> method, not the <code>%3$s</code> function. See %4$s.' ),
727
- 'pre_get_posts', 'WP_Query::is_main_query()', 'is_main_query()', __( 'http://codex.wordpress.org/Function_Reference/is_main_query' ) );
728
- _doing_it_wrong( __FUNCTION__, $message, '3.7' );
729
- }
730
-
731
- global $wp_query;
732
- return $wp_query->is_main_query();
733
- }
734
-
735
- /*
736
- * The Loop. Post loop control.
737
- */
738
-
739
- /**
740
- * Whether current WordPress query has results to loop over.
741
- *
742
- * @see WP_Query::have_posts()
743
- * @since 1.5.0
744
- * @uses $wp_query
745
- *
746
- * @return bool
747
- */
748
- function have_posts() {
749
- global $wp_query;
750
-
751
- return $wp_query->have_posts();
752
- }
753
-
754
- /**
755
- * Whether the caller is in the Loop.
756
- *
757
- * @since 2.0.0
758
- * @uses $wp_query
759
- *
760
- * @return bool True if caller is within loop, false if loop hasn't started or ended.
761
- */
762
- function in_the_loop() {
763
- global $wp_query;
764
-
765
- return $wp_query->in_the_loop;
766
- }
767
-
768
- /**
769
- * Rewind the loop posts.
770
- *
771
- * @see WP_Query::rewind_posts()
772
- * @since 1.5.0
773
- * @uses $wp_query
774
- *
775
- * @return null
776
- */
777
- function rewind_posts() {
778
- global $wp_query;
779
-
780
- return $wp_query->rewind_posts();
781
- }
782
-
783
- /**
784
- * Iterate the post index in the loop.
785
- *
786
- * @see WP_Query::the_post()
787
- * @since 1.5.0
788
- * @uses $wp_query
789
- */
790
- function the_post() {
791
- global $wp_query;
792
-
793
- $wp_query->the_post();
794
- }
795
-
796
- /*
797
- * Comments loop.
798
- */
799
-
800
- /**
801
- * Whether there are comments to loop over.
802
- *
803
- * @see WP_Query::have_comments()
804
- * @since 2.2.0
805
- * @uses $wp_query
806
- *
807
- * @return bool
808
- */
809
- function have_comments() {
810
- global $wp_query;
811
- return $wp_query->have_comments();
812
- }
813
-
814
- /**
815
- * Iterate comment index in the comment loop.
816
- *
817
- * @see WP_Query::the_comment()
818
- * @since 2.2.0
819
- * @uses $wp_query
820
- *
821
- * @return object
822
- */
823
- function the_comment() {
824
- global $wp_query;
825
- return $wp_query->the_comment();
826
- }
827
-
828
- /*
829
- * WP_Query
830
- */
831
-
832
- /**
833
- * The WordPress Query class.
834
- *
835
- * @link http://codex.wordpress.org/Function_Reference/WP_Query Codex page.
836
- *
837
- * @since 1.5.0
838
- */
839
- class WP_Query {
840
-
841
- /**
842
- * Query vars set by the user
843
- *
844
- * @since 1.5.0
845
- * @access public
846
- * @var array
847
- */
848
- public $query;
849
-
850
- /**
851
- * Query vars, after parsing
852
- *
853
- * @since 1.5.0
854
- * @access public
855
- * @var array
856
- */
857
- public $query_vars = array();
858
-
859
- /**
860
- * Taxonomy query, as passed to get_tax_sql()
861
- *
862
- * @since 3.1.0
863
- * @access public
864
- * @var object WP_Tax_Query
865
- */
866
- public $tax_query;
867
-
868
- /**
869
- * Metadata query container
870
- *
871
- * @since 3.2.0
872
- * @access public
873
- * @var object WP_Meta_Query
874
- */
875
- public $meta_query = false;
876
-
877
- /**
878
- * Date query container
879
- *
880
- * @since 3.7.0
881
- * @access public
882
- * @var object WP_Date_Query
883
- */
884
- public $date_query = false;
885
-
886
- /**
887
- * Holds the data for a single object that is queried.
888
- *
889
- * Holds the contents of a post, page, category, attachment.
890
- *
891
- * @since 1.5.0
892
- * @access public
893
- * @var object|array
894
- */
895
- public $queried_object;
896
-
897
- /**
898
- * The ID of the queried object.
899
- *
900
- * @since 1.5.0
901
- * @access public
902
- * @var int
903
- */
904
- public $queried_object_id;
905
-
906
- /**
907
- * Get post database query.
908
- *
909
- * @since 2.0.1
910
- * @access public
911
- * @var string
912
- */
913
- public $request;
914
-
915
- /**
916
- * List of posts.
917
- *
918
- * @since 1.5.0
919
- * @access public
920
- * @var array
921
- */
922
- public $posts;
923
-
924
- /**
925
- * The amount of posts for the current query.
926
- *
927
- * @since 1.5.0
928
- * @access public
929
- * @var int
930
- */
931
- public $post_count = 0;
932
-
933
- /**
934
- * Index of the current item in the loop.
935
- *
936
- * @since 1.5.0
937
- * @access public
938
- * @var int
939
- */
940
- public $current_post = -1;
941
-
942
- /**
943
- * Whether the loop has started and the caller is in the loop.
944
- *
945
- * @since 2.0.0
946
- * @access public
947
- * @var bool
948
- */
949
- public $in_the_loop = false;
950
-
951
- /**
952
- * The current post.
953
- *
954
- * @since 1.5.0
955
- * @access public
956
- * @var WP_Post
957
- */
958
- public $post;
959
-
960
- /**
961
- * The list of comments for current post.
962
- *
963
- * @since 2.2.0
964
- * @access public
965
- * @var array
966
- */
967
- public $comments;
968
-
969
- /**
970
- * The amount of comments for the posts.
971
- *
972
- * @since 2.2.0
973
- * @access public
974
- * @var int
975
- */
976
- public $comment_count = 0;
977
-
978
- /**
979
- * The index of the comment in the comment loop.
980
- *
981
- * @since 2.2.0
982
- * @access public
983
- * @var int
984
- */
985
- public $current_comment = -1;
986
-
987
- /**
988
- * Current comment ID.
989
- *
990
- * @since 2.2.0
991
- * @access public
992
- * @var int
993
- */
994
- public $comment;
995
-
996
- /**
997
- * The amount of found posts for the current query.
998
- *
999
- * If limit clause was not used, equals $post_count.
1000
- *
1001
- * @since 2.1.0
1002
- * @access public
1003
- * @var int
1004
- */
1005
- public $found_posts = 0;
1006
-
1007
- /**
1008
- * The amount of pages.
1009
- *
1010
- * @since 2.1.0
1011
- * @access public
1012
- * @var int
1013
- */
1014
- public $max_num_pages = 0;
1015
-
1016
- /**
1017
- * The amount of comment pages.
1018
- *
1019
- * @since 2.7.0
1020
- * @access public
1021
- * @var int
1022
- */
1023
- public $max_num_comment_pages = 0;
1024
-
1025
- /**
1026
- * Set if query is single post.
1027
- *
1028
- * @since 1.5.0
1029
- * @access public
1030
- * @var bool
1031
- */
1032
- public $is_single = false;
1033
-
1034
- /**
1035
- * Set if query is preview of blog.
1036
- *
1037
- * @since 2.0.0
1038
- * @access public
1039
- * @var bool
1040
- */
1041
- public $is_preview = false;
1042
-
1043
- /**
1044
- * Set if query returns a page.
1045
- *
1046
- * @since 1.5.0
1047
- * @access public
1048
- * @var bool
1049
- */
1050
- public $is_page = false;
1051
-
1052
- /**
1053
- * Set if query is an archive list.
1054
- *
1055
- * @since 1.5.0
1056
- * @access public
1057
- * @var bool
1058
- */
1059
- public $is_archive = false;
1060
-
1061
- /**
1062
- * Set if query is part of a date.
1063
- *
1064
- * @since 1.5.0
1065
- * @access public
1066
- * @var bool
1067
- */
1068
- public $is_date = false;
1069
-
1070
- /**
1071
- * Set if query contains a year.
1072
- *
1073
- * @since 1.5.0
1074
- * @access public
1075
- * @var bool
1076
- */
1077
- public $is_year = false;
1078
-
1079
- /**
1080
- * Set if query contains a month.
1081
- *
1082
- * @since 1.5.0
1083
- * @access public
1084
- * @var bool
1085
- */
1086
- public $is_month = false;
1087
-
1088
- /**
1089
- * Set if query contains a day.
1090
- *
1091
- * @since 1.5.0
1092
- * @access public
1093
- * @var bool
1094
- */
1095
- public $is_day = false;
1096
-
1097
- /**
1098
- * Set if query contains time.
1099
- *
1100
- * @since 1.5.0
1101
- * @access public
1102
- * @var bool
1103
- */
1104
- public $is_time = false;
1105
-
1106
- /**
1107
- * Set if query contains an author.
1108
- *
1109
- * @since 1.5.0
1110
- * @access public
1111
- * @var bool
1112
- */
1113
- public $is_author = false;
1114
-
1115
- /**
1116
- * Set if query contains category.
1117
- *
1118
- * @since 1.5.0
1119
- * @access public
1120
- * @var bool
1121
- */
1122
- public $is_category = false;
1123
-
1124
- /**
1125
- * Set if query contains tag.
1126
- *
1127
- * @since 2.3.0
1128
- * @access public
1129
- * @var bool
1130
- */
1131
- public $is_tag = false;
1132
-
1133
- /**
1134
- * Set if query contains taxonomy.
1135
- *
1136
- * @since 2.5.0
1137
- * @access public
1138
- * @var bool
1139
- */
1140
- public $is_tax = false;
1141
-
1142
- /**
1143
- * Set if query was part of a search result.
1144
- *
1145
- * @since 1.5.0
1146
- * @access public
1147
- * @var bool
1148
- */
1149
- public $is_search = false;
1150
-
1151
- /**
1152
- * Set if query is feed display.
1153
- *
1154
- * @since 1.5.0
1155
- * @access public
1156
- * @var bool
1157
- */
1158
- public $is_feed = false;
1159
-
1160
- /**
1161
- * Set if query is comment feed display.
1162
- *
1163
- * @since 2.2.0
1164
- * @access public
1165
- * @var bool
1166
- */
1167
- public $is_comment_feed = false;
1168
-
1169
- /**
1170
- * Set if query is trackback.
1171
- *
1172
- * @since 1.5.0
1173
- * @access public
1174
- * @var bool
1175
- */
1176
- public $is_trackback = false;
1177
-
1178
- /**
1179
- * Set if query is blog homepage.
1180
- *
1181
- * @since 1.5.0
1182
- * @access public
1183
- * @var bool
1184
- */
1185
- public $is_home = false;
1186
-
1187
- /**
1188
- * Set if query couldn't found anything.
1189
- *
1190
- * @since 1.5.0
1191
- * @access public
1192
- * @var bool
1193
- */
1194
- public $is_404 = false;
1195
-
1196
- /**
1197
- * Set if query is within comments popup window.
1198
- *
1199
- * @since 1.5.0
1200
- * @access public
1201
- * @var bool
1202
- */
1203
- public $is_comments_popup = false;
1204
-
1205
- /**
1206
- * Set if query is paged
1207
- *
1208
- * @since 1.5.0
1209
- * @access public
1210
- * @var bool
1211
- */
1212
- public $is_paged = false;
1213
-
1214
- /**
1215
- * Set if query is part of administration page.
1216
- *
1217
- * @since 1.5.0
1218
- * @access public
1219
- * @var bool
1220
- */
1221
- public $is_admin = false;
1222
-
1223
- /**
1224
- * Set if query is an attachment.
1225
- *
1226
- * @since 2.0.0
1227
- * @access public
1228
- * @var bool
1229
- */
1230
- public $is_attachment = false;
1231
-
1232
- /**
1233
- * Set if is single, is a page, or is an attachment.
1234
- *
1235
- * @since 2.1.0
1236
- * @access public
1237
- * @var bool
1238
- */
1239
- public $is_singular = false;
1240
-
1241
- /**
1242
- * Set if query is for robots.
1243
- *
1244
- * @since 2.1.0
1245
- * @access public
1246
- * @var bool
1247
- */
1248
- public $is_robots = false;
1249
-
1250
- /**
1251
- * Set if query contains posts.
1252
- *
1253
- * Basically, the homepage if the option isn't set for the static homepage.
1254
- *
1255
- * @since 2.1.0
1256
- * @access public
1257
- * @var bool
1258
- */
1259
- public $is_posts_page = false;
1260
-
1261
- /**
1262
- * Set if query is for a post type archive.
1263
- *
1264
- * @since 3.1.0
1265
- * @access public
1266
- * @var bool
1267
- */
1268
- public $is_post_type_archive = false;
1269
-
1270
- /**
1271
- * Stores the ->query_vars state like md5(serialize( $this->query_vars ) ) so we know
1272
- * whether we have to re-parse because something has changed
1273
- *
1274
- * @since 3.1.0
1275
- * @access private
1276
- */
1277
- private $query_vars_hash = false;
1278
-
1279
- /**
1280
- * Whether query vars have changed since the initial parse_query() call. Used to catch modifications to query vars made
1281
- * via pre_get_posts hooks.
1282
- *
1283
- * @since 3.1.1
1284
- * @access private
1285
- */
1286
- private $query_vars_changed = true;
1287
-
1288
- /**
1289
- * Set if post thumbnails are cached
1290
- *
1291
- * @since 3.2.0
1292
- * @access public
1293
- * @var bool
1294
- */
1295
- public $thumbnails_cached = false;
1296
-
1297
- /**
1298
- * Cached list of search stopwords.
1299
- *
1300
- * @since 3.7.0
1301
- * @var array
1302
- */
1303
- private $stopwords;
1304
-
1305
- /**
1306
- * Resets query flags to false.
1307
- *
1308
- * The query flags are what page info WordPress was able to figure out.
1309
- *
1310
- * @since 2.0.0
1311
- * @access private
1312
- */
1313
- private function init_query_flags() {
1314
- $this->is_single = false;
1315
- $this->is_preview = false;
1316
- $this->is_page = false;
1317
- $this->is_archive = false;
1318
- $this->is_date = false;
1319
- $this->is_year = false;
1320
- $this->is_month = false;
1321
- $this->is_day = false;
1322
- $this->is_time = false;
1323
- $this->is_author = false;
1324
- $this->is_category = false;
1325
- $this->is_tag = false;
1326
- $this->is_tax = false;
1327
- $this->is_search = false;
1328
- $this->is_feed = false;
1329
- $this->is_comment_feed = false;
1330
- $this->is_trackback = false;
1331
- $this->is_home = false;
1332
- $this->is_404 = false;
1333
- $this->is_comments_popup = false;
1334
- $this->is_paged = false;
1335
- $this->is_admin = false;
1336
- $this->is_attachment = false;
1337
- $this->is_singular = false;
1338
- $this->is_robots = false;
1339
- $this->is_posts_page = false;
1340
- $this->is_post_type_archive = false;
1341
- }
1342
-
1343
- /**
1344
- * Initiates object properties and sets default values.
1345
- *
1346
- * @since 1.5.0
1347
- * @access public
1348
- */
1349
- public function init() {
1350
- unset($this->posts);
1351
- unset($this->query);
1352
- $this->query_vars = array();
1353
- unset($this->queried_object);
1354
- unset($this->queried_object_id);
1355
- $this->post_count = 0;
1356
- $this->current_post = -1;
1357
- $this->in_the_loop = false;
1358
- unset( $this->request );
1359
- unset( $this->post );
1360
- unset( $this->comments );
1361
- unset( $this->comment );
1362
- $this->comment_count = 0;
1363
- $this->current_comment = -1;
1364
- $this->found_posts = 0;
1365
- $this->max_num_pages = 0;
1366
- $this->max_num_comment_pages = 0;
1367
-
1368
- $this->init_query_flags();
1369
- }
1370
-
1371
- /**
1372
- * Reparse the query vars.
1373
- *
1374
- * @since 1.5.0
1375
- * @access public
1376
- */
1377
- public function parse_query_vars() {
1378
- $this->parse_query();
1379
- }
1380
-
1381
- /**
1382
- * Fills in the query variables, which do not exist within the parameter.
1383
- *
1384
- * @since 2.1.0
1385
- * @access public
1386
- *
1387
- * @param array $array Defined query variables.
1388
- * @return array Complete query variables with undefined ones filled in empty.
1389
- */
1390
- public function fill_query_vars($array) {
1391
- $keys = array(
1392
- 'error'
1393
- , 'm'
1394
- , 'p'
1395
- , 'post_parent'
1396
- , 'subpost'
1397
- , 'subpost_id'
1398
- , 'attachment'
1399
- , 'attachment_id'
1400
- , 'name'
1401
- , 'static'
1402
- , 'pagename'
1403
- , 'page_id'
1404
- , 'second'
1405
- , 'minute'
1406
- , 'hour'
1407
- , 'day'
1408
- , 'monthnum'
1409
- , 'year'
1410
- , 'w'
1411
- , 'category_name'
1412
- , 'tag'
1413
- , 'cat'
1414
- , 'tag_id'
1415
- , 'author'
1416
- , 'author_name'
1417
- , 'feed'
1418
- , 'tb'
1419
- , 'paged'
1420
- , 'comments_popup'
1421
- , 'meta_key'
1422
- , 'meta_value'
1423
- , 'preview'
1424
- , 's'
1425
- , 'sentence'
1426
- , 'fields'
1427
- , 'menu_order'
1428
- );
1429
-
1430
- foreach ( $keys as $key ) {
1431
- if ( !isset($array[$key]) )
1432
- $array[$key] = '';
1433
- }
1434
-
1435
- $array_keys = array( 'category__in', 'category__not_in', 'category__and', 'post__in', 'post__not_in',
1436
- 'tag__in', 'tag__not_in', 'tag__and', 'tag_slug__in', 'tag_slug__and', 'post_parent__in', 'post_parent__not_in',
1437
- 'author__in', 'author__not_in' );
1438
-
1439
- foreach ( $array_keys as $key ) {
1440
- if ( !isset($array[$key]) )
1441
- $array[$key] = array();
1442
- }
1443
- return $array;
1444
- }
1445
-
1446
- /**
1447
- * Parse a query string and set query type booleans.
1448
- *
1449
- * @since 1.5.0
1450
- * @access public
1451
- *
1452
- * @param string|array $query {
1453
- * Optional. Array or string of Query parameters.
1454
- *
1455
- * @type int $attachment_id Attachment post ID. Used for 'attachment' post_type.
1456
- * @type int|string $author Author ID, or comma-separated list of IDs.
1457
- * @type string $author_name User 'user_nicename'.
1458
- * @type array $author__in An array of author IDs to query from.
1459
- * @type array $author__not_in An array of author IDs not to query from.
1460
- * @type bool $cache_results Whether to cache post information. Default true.
1461
- * @type int|string $cat Category ID or comma-separated list of IDs (this or any children).
1462
- * @type array $category__and An array of category IDs (AND in).
1463
- * @type array $category__in An array of category IDs (OR in, no children).
1464
- * @type array $category__not_in An array of category IDs (NOT in).
1465
- * @type string $category_name Use category slug (not name, this or any children).
1466
- * @type int $comments_per_page The number of comments to return per page.
1467
- * Default 'comments_per_page' option.
1468
- * @type int|string $comments_popup Whether the query is within the comments popup. Default empty.
1469
- * @type array $date_query An associative array of WP_Date_Query arguments.
1470
- * {@see WP_Date_Query::__construct()}
1471
- * @type int $day Day of the month. Default empty. Accepts numbers 1-31.
1472
- * @type bool $exact Whether to search by exact keyword. Default false.
1473
- * @type string|array $fields Which fields to return. Single field or all fields (string),
1474
- * or array of fields. 'id=>parent' uses 'id' and 'post_parent'.
1475
- * Default all fields. Accepts 'ids', 'id=>parent'.
1476
- * @type int $hour Hour of the day. Default empty. Accepts numbers 0-23.
1477
- * @type bool $ignore_sticky_posts Whether to ignore sticky posts or not. Setting this to false
1478
- * excludes stickies from 'post__in'. Accepts 1|true, 0|false.
1479
- * Default 0|false.
1480
- * @type int $m Combination YearMonth. Accepts any four-digit year and month
1481
- * numbers 1-12. Default empty.
1482
- * @type string $meta_compare Comparison operator to test the 'meta_value'.
1483
- * @type string $meta_key Custom field key.
1484
- * @type array $meta_query An associative array of WP_Meta_Query arguments.
1485
- * {@see WP_Meta_Query->queries}
1486
- * @type string $meta_value Custom field value.
1487
- * @type int $meta_value_num Custom field value number.
1488
- * @type int $menu_order The menu order of the posts.
1489
- * @type int $monthnum The two-digit month. Default empty. Accepts numbers 1-12.
1490
- * @type string $name Post slug.
1491
- * @type bool $nopaging Show all posts (true) or paginate (false). Default false.
1492
- * @type bool $no_found_rows Whether to skip counting the total rows found. Enabling can improve
1493
- * performance. Default false.
1494
- * @type int $offset The number of posts to offset before retrieval.
1495
- * @type string $order Designates ascending or descending order of posts. Default 'DESC'.
1496
- * Accepts 'ASC', 'DESC'.
1497
- * @type string $orderby Sort retrieved posts by parameter. One or more options can be
1498
- * passed. To use 'meta_value', or 'meta_value_num',
1499
- * 'meta_key=keyname' must be also be defined. Default 'date'.
1500
- * Accepts 'none', 'name', 'author', 'date', 'title', 'modified',
1501
- * 'menu_order', 'parent', 'ID', 'rand', 'comment_count'.
1502
- * @type int $p Post ID.
1503
- * @type int $page Show the number of posts that would show up on page X of a
1504
- * static front page.
1505
- * @type int $paged The number of the current page.
1506
- * @type int $page_id Page ID.
1507
- * @type string $pagename Page slug.
1508
- * @type string $perm Show posts if user has the appropriate capability.
1509
- * @type array $post__in An array of post IDs to retrieve, sticky posts will be included
1510
- * @type string $post_mime_type The mime type of the post. Used for 'attachment' post_type.
1511
- * @type array $post__not_in An array of post IDs not to retrieve. Note: a string of comma-
1512
- * separated IDs will NOT work.
1513
- * @type int $post_parent Page ID to retrieve child pages for. Use 0 to only retrieve
1514
- * top-level pages.
1515
- * @type array $post_parent__in An array containing parent page IDs to query child pages from.
1516
- * @type array $post_parent__not_in An array containing parent page IDs not to query child pages from.
1517
- * @type string|array $post_type A post type slug (string) or array of post type slugs.
1518
- * Default 'any' if using 'tax_query'.
1519
- * @type string|array $post_status A post status (string) or array of post statuses.
1520
- * @type int $posts_per_page The number of posts to query for. Use -1 to request all posts.
1521
- * @type int $posts_per_archive_page The number of posts to query for by archive page. Overrides
1522
- * 'posts_per_page' when is_archive(), or is_search() are true.
1523
- * @type string $s Search keyword.
1524
- * @type int $second Second of the minute. Default empty. Accepts numbers 0-60.
1525
- * @type array $search_terms Array of search terms.
1526
- * @type bool $sentence Whether to search by phrase. Default false.
1527
- * @type bool $suppress_filters Whether to suppress filters. Default false.
1528
- * @type string $tag Tag slug. Comma-separated (either), Plus-separated (all).
1529
- * @type array $tag__and An array of tag ids (AND in).
1530
- * @type array $tag__in An array of tag ids (OR in).
1531
- * @type array $tag__not_in An array of tag ids (NOT in).
1532
- * @type int $tag_id Tag id or comma-separated list of IDs.
1533
- * @type array $tag_slug__and An array of tag slugs (AND in).
1534
- * @type array $tag_slug__in An array of tag slugs (OR in). unless 'ignore_sticky_posts' is
1535
- * true. Note: a string of comma-separated IDs will NOT work.
1536
- * @type array $tax_query An associative array of WP_Tax_Query arguments.
1537
- * {@see WP_Tax_Query->queries}
1538
- * @type bool $update_post_meta_cache Whether to update the post meta cache. Default true.
1539
- * @type bool $update_post_term_cache Whether to update the post term cache. Default true.
1540
- * @type int $w The week number of the year. Default empty. Accepts numbers 0-53.
1541
- * @type int $year The four-digit year. Default empty. Accepts any four-digit year.
1542
- * }
1543
- */
1544
- public function parse_query( $query = '' ) {
1545
- if ( ! empty( $query ) ) {
1546
- $this->init();
1547
- $this->query = $this->query_vars = wp_parse_args( $query );
1548
- } elseif ( ! isset( $this->query ) ) {
1549
- $this->query = $this->query_vars;
1550
- }
1551
-
1552
- $this->query_vars = $this->fill_query_vars($this->query_vars);
1553
- $qv = &$this->query_vars;
1554
- $this->query_vars_changed = true;
1555
-
1556
- if ( ! empty($qv['robots']) )
1557
- $this->is_robots = true;
1558
-
1559
- $qv['p'] = absint($qv['p']);
1560
- $qv['page_id'] = absint($qv['page_id']);
1561
- $qv['year'] = absint($qv['year']);
1562
- $qv['monthnum'] = absint($qv['monthnum']);
1563
- $qv['day'] = absint($qv['day']);
1564
- $qv['w'] = absint($qv['w']);
1565
- $qv['m'] = preg_replace( '|[^0-9]|', '', $qv['m'] );
1566
- $qv['paged'] = absint($qv['paged']);
1567
- $qv['cat'] = preg_replace( '|[^0-9,-]|', '', $qv['cat'] ); // comma separated list of positive or negative integers
1568
- $qv['author'] = preg_replace( '|[^0-9,-]|', '', $qv['author'] ); // comma separated list of positive or negative integers
1569
- $qv['pagename'] = trim( $qv['pagename'] );
1570
- $qv['name'] = trim( $qv['name'] );
1571
- if ( '' !== $qv['hour'] ) $qv['hour'] = absint($qv['hour']);
1572
- if ( '' !== $qv['minute'] ) $qv['minute'] = absint($qv['minute']);
1573
- if ( '' !== $qv['second'] ) $qv['second'] = absint($qv['second']);
1574
- if ( '' !== $qv['menu_order'] ) $qv['menu_order'] = absint($qv['menu_order']);
1575
-
1576
- // Fairly insane upper bound for search string lengths.
1577
- if ( ! empty( $qv['s'] ) && strlen( $qv['s'] ) > 1600 )
1578
- $qv['s'] = '';
1579
-
1580
- // Compat. Map subpost to attachment.
1581
- if ( '' != $qv['subpost'] )
1582
- $qv['attachment'] = $qv['subpost'];
1583
- if ( '' != $qv['subpost_id'] )
1584
- $qv['attachment_id'] = $qv['subpost_id'];
1585
-
1586
- $qv['attachment_id'] = absint($qv['attachment_id']);
1587
-
1588
- if ( ('' != $qv['attachment']) || !empty($qv['attachment_id']) ) {
1589
- $this->is_single = true;
1590
- $this->is_attachment = true;
1591
- } elseif ( '' != $qv['name'] ) {
1592
- $this->is_single = true;
1593
- } elseif ( $qv['p'] ) {
1594
- $this->is_single = true;
1595
- } elseif ( ('' !== $qv['hour']) && ('' !== $qv['minute']) &&('' !== $qv['second']) && ('' != $qv['year']) && ('' != $qv['monthnum']) && ('' != $qv['day']) ) {
1596
- // If year, month, day, hour, minute, and second are set, a single
1597
- // post is being queried.
1598
- $this->is_single = true;
1599
- } elseif ( '' != $qv['static'] || '' != $qv['pagename'] || !empty($qv['page_id']) ) {
1600
- $this->is_page = true;
1601
- $this->is_single = false;
1602
- } else {
1603
- // Look for archive queries. Dates, categories, authors, search, post type archives.
1604
-
1605
- if ( isset( $this->query['s'] ) ) {
1606
- $this->is_search = true;
1607
- }
1608
-
1609
- if ( '' !== $qv['second'] ) {
1610
- $this->is_time = true;
1611
- $this->is_date = true;
1612
- }
1613
-
1614
- if ( '' !== $qv['minute'] ) {
1615
- $this->is_time = true;
1616
- $this->is_date = true;
1617
- }
1618
-
1619
- if ( '' !== $qv['hour'] ) {
1620
- $this->is_time = true;
1621
- $this->is_date = true;
1622
- }
1623
-
1624
- if ( $qv['day'] ) {
1625
- if ( ! $this->is_date ) {
1626
- $date = sprintf( '%04d-%02d-%02d', $qv['year'], $qv['monthnum'], $qv['day'] );
1627
- if ( $qv['monthnum'] && $qv['year'] && ! wp_checkdate( $qv['monthnum'], $qv['day'], $qv['year'], $date ) ) {
1628
- $qv['error'] = '404';
1629
- } else {
1630
- $this->is_day = true;
1631
- $this->is_date = true;
1632
- }
1633
- }
1634
- }
1635
-
1636
- if ( $qv['monthnum'] ) {
1637
- if ( ! $this->is_date ) {
1638
- if ( 12 < $qv['monthnum'] ) {
1639
- $qv['error'] = '404';
1640
- } else {
1641
- $this->is_month = true;
1642
- $this->is_date = true;
1643
- }
1644
- }
1645
- }
1646
-
1647
- if ( $qv['year'] ) {
1648
- if ( ! $this->is_date ) {
1649
- $this->is_year = true;
1650
- $this->is_date = true;
1651
- }
1652
- }
1653
-
1654
- if ( $qv['m'] ) {
1655
- $this->is_date = true;
1656
- if ( strlen($qv['m']) > 9 ) {
1657
- $this->is_time = true;
1658
- } else if ( strlen($qv['m']) > 7 ) {
1659
- $this->is_day = true;
1660
- } else if ( strlen($qv['m']) > 5 ) {
1661
- $this->is_month = true;
1662
- } else {
1663
- $this->is_year = true;
1664
- }
1665
- }
1666
-
1667
- if ( '' != $qv['w'] ) {
1668
- $this->is_date = true;
1669
- }
1670
-
1671
- $this->query_vars_hash = false;
1672
- $this->parse_tax_query( $qv );
1673
-
1674
- foreach ( $this->tax_query->queries as $tax_query ) {
1675
- if ( 'NOT IN' != $tax_query['operator'] ) {
1676
- switch ( $tax_query['taxonomy'] ) {
1677
- case 'category':
1678
- $this->is_category = true;
1679
- break;
1680
- case 'post_tag':
1681
- $this->is_tag = true;
1682
- break;
1683
- default:
1684
- $this->is_tax = true;
1685
- }
1686
- }
1687
- }
1688
- unset( $tax_query );
1689
-
1690
- if ( empty($qv['author']) || ($qv['author'] == '0') ) {
1691
- $this->is_author = false;
1692
- } else {
1693
- $this->is_author = true;
1694
- }
1695
-
1696
- if ( '' != $qv['author_name'] )
1697
- $this->is_author = true;
1698
-
1699
- if ( !empty( $qv['post_type'] ) && ! is_array( $qv['post_type'] ) ) {
1700
- $post_type_obj = get_post_type_object( $qv['post_type'] );
1701
- if ( ! empty( $post_type_obj->has_archive ) )
1702
- $this->is_post_type_archive = true;
1703
- }
1704
-
1705
- if ( $this->is_post_type_archive || $this->is_date || $this->is_author || $this->is_category || $this->is_tag || $this->is_tax )
1706
- $this->is_archive = true;
1707
- }
1708
-
1709
- if ( '' != $qv['feed'] )
1710
- $this->is_feed = true;
1711
-
1712
- if ( '' != $qv['tb'] )
1713
- $this->is_trackback = true;
1714
-
1715
- if ( '' != $qv['paged'] && ( intval($qv['paged']) > 1 ) )
1716
- $this->is_paged = true;
1717
-
1718
- if ( '' != $qv['comments_popup'] )
1719
- $this->is_comments_popup = true;
1720
-
1721
- // if we're previewing inside the write screen
1722
- if ( '' != $qv['preview'] )
1723
- $this->is_preview = true;
1724
-
1725
- if ( is_admin() )
1726
- $this->is_admin = true;
1727
-
1728
- if ( false !== strpos($qv['feed'], 'comments-') ) {
1729
- $qv['feed'] = str_replace('comments-', '', $qv['feed']);
1730
- $qv['withcomments'] = 1;
1731
- }
1732
-
1733
- $this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
1734
-
1735
- if ( $this->is_feed && ( !empty($qv['withcomments']) || ( empty($qv['withoutcomments']) && $this->is_singular ) ) )
1736
- $this->is_comment_feed = true;
1737
-
1738
- if ( !( $this->is_singular || $this->is_archive || $this->is_search || $this->is_feed || $this->is_trackback || $this->is_404 || $this->is_admin || $this->is_comments_popup || $this->is_robots ) )
1739
- $this->is_home = true;
1740
-
1741
- // Correct is_* for page_on_front and page_for_posts
1742
- if ( $this->is_home && 'page' == get_option('show_on_front') && get_option('page_on_front') ) {
1743
- $_query = wp_parse_args($this->query);
1744
- // pagename can be set and empty depending on matched rewrite rules. Ignore an empty pagename.
1745
- if ( isset($_query['pagename']) && '' == $_query['pagename'] )
1746
- unset($_query['pagename']);
1747
- if ( empty($_query) || !array_diff( array_keys($_query), array('preview', 'page', 'paged', 'cpage') ) ) {
1748
- $this->is_page = true;
1749
- $this->is_home = false;
1750
- $qv['page_id'] = get_option('page_on_front');
1751
- // Correct <!--nextpage--> for page_on_front
1752
- if ( !empty($qv['paged']) ) {
1753
- $qv['page'] = $qv['paged'];
1754
- unset($qv['paged']);
1755
- }
1756
- }
1757
- }
1758
-
1759
- if ( '' != $qv['pagename'] ) {
1760
- $this->queried_object = get_page_by_path($qv['pagename']);
1761
- if ( !empty($this->queried_object) )
1762
- $this->queried_object_id = (int) $this->queried_object->ID;
1763
- else
1764
- unset($this->queried_object);
1765
-
1766
- if ( 'page' == get_option('show_on_front') && isset($this->queried_object_id) && $this->queried_object_id == get_option('page_for_posts') ) {
1767
- $this->is_page = false;
1768
- $this->is_home = true;
1769
- $this->is_posts_page = true;
1770
- }
1771
- }
1772
-
1773
- if ( $qv['page_id'] ) {
1774
- if ( 'page' == get_option('show_on_front') && $qv['page_id'] == get_option('page_for_posts') ) {
1775
- $this->is_page = false;
1776
- $this->is_home = true;
1777
- $this->is_posts_page = true;
1778
- }
1779
- }
1780
-
1781
- if ( !empty($qv['post_type']) ) {
1782
- if ( is_array($qv['post_type']) )
1783
- $qv['post_type'] = array_map('sanitize_key', $qv['post_type']);
1784
- else
1785
- $qv['post_type'] = sanitize_key($qv['post_type']);
1786
- }
1787
-
1788
- if ( ! empty( $qv['post_status'] ) ) {
1789
- if ( is_array( $qv['post_status'] ) )
1790
- $qv['post_status'] = array_map('sanitize_key', $qv['post_status']);
1791
- else
1792
- $qv['post_status'] = preg_replace('|[^a-z0-9_,-]|', '', $qv['post_status']);
1793
- }
1794
-
1795
- if ( $this->is_posts_page && ( ! isset($qv['withcomments']) || ! $qv['withcomments'] ) )
1796
- $this->is_comment_feed = false;
1797
-
1798
- $this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
1799
- // Done correcting is_* for page_on_front and page_for_posts
1800
-
1801
- if ( '404' == $qv['error'] )
1802
- $this->set_404();
1803
-
1804
- $this->query_vars_hash = md5( serialize( $this->query_vars ) );
1805
- $this->query_vars_changed = false;
1806
-
1807
- /**
1808
- * Fires after the main query vars have been parsed.
1809
- *
1810
- * @since 1.5.0
1811
- *
1812
- * @param WP_Query &$this The WP_Query instance (passed by reference).
1813
- */
1814
- do_action_ref_array( 'parse_query', array( &$this ) );
1815
- }
1816
-
1817
- /**
1818
- * Parses various taxonomy related query vars.
1819
- *
1820
- * For BC, this method is not marked as protected. See [28987].
1821
- *
1822
- * @access protected
1823
- * @since 3.1.0
1824
- *
1825
- * @param array &$q The query variables
1826
- */
1827
- function parse_tax_query( &$q ) {
1828
- if ( ! empty( $q['tax_query'] ) && is_array( $q['tax_query'] ) ) {
1829
- $tax_query = $q['tax_query'];
1830
- } else {
1831
- $tax_query = array();
1832
- }
1833
-
1834
- if ( !empty($q['taxonomy']) && !empty($q['term']) ) {
1835
- $tax_query[] = array(
1836
- 'taxonomy' => $q['taxonomy'],
1837
- 'terms' => array( $q['term'] ),
1838
- 'field' => 'slug',
1839
- );
1840
- }
1841
-
1842
- foreach ( get_taxonomies( array() , 'objects' ) as $taxonomy => $t ) {
1843
- if ( 'post_tag' == $taxonomy )
1844
- continue; // Handled further down in the $q['tag'] block
1845
-
1846
- if ( $t->query_var && !empty( $q[$t->query_var] ) ) {
1847
- $tax_query_defaults = array(
1848
- 'taxonomy' => $taxonomy,
1849
- 'field' => 'slug',
1850
- );
1851
-
1852
- if ( isset( $t->rewrite['hierarchical'] ) && $t->rewrite['hierarchical'] ) {
1853
- $q[$t->query_var] = wp_basename( $q[$t->query_var] );
1854
- }
1855
-
1856
- $term = $q[$t->query_var];
1857
-
1858
- if ( strpos($term, '+') !== false ) {
1859
- $terms = preg_split( '/[+]+/', $term );
1860
- foreach ( $terms as $term ) {
1861
- $tax_query[] = array_merge( $tax_query_defaults, array(
1862
- 'terms' => array( $term )
1863
- ) );
1864
- }
1865
- } else {
1866
- $tax_query[] = array_merge( $tax_query_defaults, array(
1867
- 'terms' => preg_split( '/[,]+/', $term )
1868
- ) );
1869
- }
1870
- }
1871
- }
1872
-
1873
- // Category stuff
1874
- if ( ! empty( $q['cat'] ) && ! $this->is_singular ) {
1875
- $cat_in = $cat_not_in = array();
1876
-
1877
- $cat_array = preg_split( '/[,\s]+/', urldecode( $q['cat'] ) );
1878
- $cat_array = array_map( 'intval', $cat_array );
1879
- $q['cat'] = implode( ',', $cat_array );
1880
-
1881
- foreach ( $cat_array as $cat ) {
1882
- if ( $cat > 0 )
1883
- $cat_in[] = $cat;
1884
- elseif ( $cat < 0 )
1885
- $cat_not_in[] = abs( $cat );
1886
- }
1887
-
1888
- if ( ! empty( $cat_in ) ) {
1889
- $tax_query[] = array(
1890
- 'taxonomy' => 'category',
1891
- 'terms' => $cat_in,
1892
- 'field' => 'term_id',
1893
- 'include_children' => true
1894
- );
1895
- }
1896
-
1897
- if ( ! empty( $cat_not_in ) ) {
1898
- $tax_query[] = array(
1899
- 'taxonomy' => 'category',
1900
- 'terms' => $cat_not_in,
1901
- 'field' => 'term_id',
1902
- 'operator' => 'NOT IN',
1903
- 'include_children' => true
1904
- );
1905
- }
1906
- unset( $cat_array, $cat_in, $cat_not_in );
1907
- }
1908
-
1909
- if ( ! empty( $q['category__and'] ) && 1 === count( (array) $q['category__and'] ) ) {
1910
- $q['category__and'] = (array) $q['category__and'];
1911
- if ( ! isset( $q['category__in'] ) )
1912
- $q['category__in'] = array();
1913
- $q['category__in'][] = absint( reset( $q['category__and'] ) );
1914
- unset( $q['category__and'] );
1915
- }
1916
-
1917
- if ( ! empty( $q['category__in'] ) ) {
1918
- $q['category__in'] = array_map( 'absint', array_unique( (array) $q['category__in'] ) );
1919
- $tax_query[] = array(
1920
- 'taxonomy' => 'category',
1921
- 'terms' => $q['category__in'],
1922
- 'field' => 'term_id',
1923
- 'include_children' => false
1924
- );
1925
- }
1926
-
1927
- if ( ! empty($q['category__not_in']) ) {
1928
- $q['category__not_in'] = array_map( 'absint', array_unique( (array) $q['category__not_in'] ) );
1929
- $tax_query[] = array(
1930
- 'taxonomy' => 'category',
1931
- 'terms' => $q['category__not_in'],
1932
- 'operator' => 'NOT IN',
1933
- 'include_children' => false
1934
- );
1935
- }
1936
-
1937
- if ( ! empty($q['category__and']) ) {
1938
- $q['category__and'] = array_map( 'absint', array_unique( (array) $q['category__and'] ) );
1939
- $tax_query[] = array(
1940
- 'taxonomy' => 'category',
1941
- 'terms' => $q['category__and'],
1942
- 'field' => 'term_id',
1943
- 'operator' => 'AND',
1944
- 'include_children' => false
1945
- );
1946
- }
1947
-
1948
- // Tag stuff
1949
- if ( '' != $q['tag'] && !$this->is_singular && $this->query_vars_changed ) {
1950
- if ( strpos($q['tag'], ',') !== false ) {
1951
- $tags = preg_split('/[,\r\n\t ]+/', $q['tag']);
1952
- foreach ( (array) $tags as $tag ) {
1953
- $tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
1954
- $q['tag_slug__in'][] = $tag;
1955
- }
1956
- } else if ( preg_match('/[+\r\n\t ]+/', $q['tag']) || !empty($q['cat']) ) {
1957
- $tags = preg_split('/[+\r\n\t ]+/', $q['tag']);
1958
- foreach ( (array) $tags as $tag ) {
1959
- $tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
1960
- $q['tag_slug__and'][] = $tag;
1961
- }
1962
- } else {
1963
- $q['tag'] = sanitize_term_field('slug', $q['tag'], 0, 'post_tag', 'db');
1964
- $q['tag_slug__in'][] = $q['tag'];
1965
- }
1966
- }
1967
-
1968
- if ( !empty($q['tag_id']) ) {
1969
- $q['tag_id'] = absint( $q['tag_id'] );
1970
- $tax_query[] = array(
1971
- 'taxonomy' => 'post_tag',
1972
- 'terms' => $q['tag_id']
1973
- );
1974
- }
1975
-
1976
- if ( !empty($q['tag__in']) ) {
1977
- $q['tag__in'] = array_map('absint', array_unique( (array) $q['tag__in'] ) );
1978
- $tax_query[] = array(
1979
- 'taxonomy' => 'post_tag',
1980
- 'terms' => $q['tag__in']
1981
- );
1982
- }
1983
-
1984
- if ( !empty($q['tag__not_in']) ) {
1985
- $q['tag__not_in'] = array_map('absint', array_unique( (array) $q['tag__not_in'] ) );
1986
- $tax_query[] = array(
1987
- 'taxonomy' => 'post_tag',
1988
- 'terms' => $q['tag__not_in'],
1989
- 'operator' => 'NOT IN'
1990
- );
1991
- }
1992
-
1993
- if ( !empty($q['tag__and']) ) {
1994
- $q['tag__and'] = array_map('absint', array_unique( (array) $q['tag__and'] ) );
1995
- $tax_query[] = array(
1996
- 'taxonomy' => 'post_tag',
1997
- 'terms' => $q['tag__and'],
1998
- 'operator' => 'AND'
1999
- );
2000
- }
2001
-
2002
- if ( !empty($q['tag_slug__in']) ) {
2003
- $q['tag_slug__in'] = array_map('sanitize_title_for_query', array_unique( (array) $q['tag_slug__in'] ) );
2004
- $tax_query[] = array(
2005
- 'taxonomy' => 'post_tag',
2006
- 'terms' => $q['tag_slug__in'],
2007
- 'field' => 'slug'
2008
- );
2009
- }
2010
-
2011
- if ( !empty($q['tag_slug__and']) ) {
2012
- $q['tag_slug__and'] = array_map('sanitize_title_for_query', array_unique( (array) $q['tag_slug__and'] ) );
2013
- $tax_query[] = array(
2014
- 'taxonomy' => 'post_tag',
2015
- 'terms' => $q['tag_slug__and'],
2016
- 'field' => 'slug',
2017
- 'operator' => 'AND'
2018
- );
2019
- }
2020
-
2021
- $this->tax_query = new WP_Tax_Query( $tax_query );
2022
-
2023
- /**
2024
- * Fires after taxonomy-related query vars have been parsed.
2025
- *
2026
- * @since 3.7.0
2027
- *
2028
- * @param WP_Query $this The WP_Query instance.
2029
- */
2030
- do_action( 'parse_tax_query', $this );
2031
- }
2032
-
2033
- /**
2034
- * Generate SQL for the WHERE clause based on passed search terms.
2035
- *
2036
- * @since 3.7.0
2037
- *
2038
- * @global wpdb $wpdb
2039
- * @param array $q Query variables.
2040
- * @return string WHERE clause.
2041
- */
2042
- protected function parse_search( &$q ) {
2043
- global $wpdb;
2044
-
2045
- $search = '';
2046
-
2047
- // added slashes screw with quote grouping when done early, so done later
2048
- $q['s'] = stripslashes( $q['s'] );
2049
- if ( empty( $_GET['s'] ) && $this->is_main_query() )
2050
- $q['s'] = urldecode( $q['s'] );
2051
- // there are no line breaks in <input /> fields
2052
- $q['s'] = str_replace( array( "\r", "\n" ), '', $q['s'] );
2053
- $q['search_terms_count'] = 1;
2054
- if ( ! empty( $q['sentence'] ) ) {
2055
- $q['search_terms'] = array( $q['s'] );
2056
- } else {
2057
- if ( preg_match_all( '/".*?("|$)|((?<=[\t ",+])|^)[^\t ",+]+/', $q['s'], $matches ) ) {
2058
- $q['search_terms_count'] = count( $matches[0] );
2059
- $q['search_terms'] = $this->parse_search_terms( $matches[0] );
2060
- // if the search string has only short terms or stopwords, or is 10+ terms long, match it as sentence
2061
- if ( empty( $q['search_terms'] ) || count( $q['search_terms'] ) > 9 )
2062
- $q['search_terms'] = array( $q['s'] );
2063
- } else {
2064
- $q['search_terms'] = array( $q['s'] );
2065
- }
2066
- }
2067
-
2068
- $n = ! empty( $q['exact'] ) ? '' : '%';
2069
- $searchand = '';
2070
- $q['search_orderby_title'] = array();
2071
- foreach ( $q['search_terms'] as $term ) {
2072
- if ( $n ) {
2073
- $like = '%' . $wpdb->esc_like( $term ) . '%';
2074
- $q['search_orderby_title'][] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $like );
2075
- }
2076
-
2077
- $like = $n . $wpdb->esc_like( $term ) . $n;
2078
- $search .= $wpdb->prepare( "{$searchand}(($wpdb->posts.post_title LIKE %s) OR ($wpdb->posts.post_content LIKE %s))", $like, $like );
2079
- $searchand = ' AND ';
2080
- }
2081
-
2082
- if ( ! empty( $search ) ) {
2083
- $search = " AND ({$search}) ";
2084
- if ( ! is_user_logged_in() )
2085
- $search .= " AND ($wpdb->posts.post_password = '') ";
2086
- }
2087
-
2088
- return $search;
2089
- }
2090
-
2091
- /**
2092
- * Check if the terms are suitable for searching.
2093
- *
2094
- * Uses an array of stopwords (terms) that are excluded from the separate
2095
- * term matching when searching for posts. The list of English stopwords is
2096
- * the approximate search engines list, and is translatable.
2097
- *
2098
- * @since 3.7.0
2099
- *
2100
- * @param array Terms to check.
2101
- * @return array Terms that are not stopwords.
2102
- */
2103
- protected function parse_search_terms( $terms ) {
2104
- $strtolower = function_exists( 'mb_strtolower' ) ? 'mb_strtolower' : 'strtolower';
2105
- $checked = array();
2106
-
2107
- $stopwords = $this->get_search_stopwords();
2108
-
2109
- foreach ( $terms as $term ) {
2110
- // keep before/after spaces when term is for exact match
2111
- if ( preg_match( '/^".+"$/', $term ) )
2112
- $term = trim( $term, "\"'" );
2113
- else
2114
- $term = trim( $term, "\"' " );
2115
-
2116
- // Avoid single A-Z.
2117
- if ( ! $term || ( 1 === strlen( $term ) && preg_match( '/^[a-z]$/i', $term ) ) )
2118
- continue;
2119
-
2120
- if ( in_array( call_user_func( $strtolower, $term ), $stopwords, true ) )
2121
- continue;
2122
-
2123
- $checked[] = $term;
2124
- }
2125
-
2126
- return $checked;
2127
- }
2128
-
2129
- /**
2130
- * Retrieve stopwords used when parsing search terms.
2131
- *
2132
- * @since 3.7.0
2133
- *
2134
- * @return array Stopwords.
2135
- */
2136
- protected function get_search_stopwords() {
2137
- if ( isset( $this->stopwords ) )
2138
- return $this->stopwords;
2139
-
2140
- /* translators: This is a comma-separated list of very common words that should be excluded from a search,
2141
- * like a, an, and the. These are usually called "stopwords". You should not simply translate these individual
2142
- * words into your language. Instead, look for and provide commonly accepted stopwords in your language.
2143
- */
2144
- $words = explode( ',', _x( 'about,an,are,as,at,be,by,com,for,from,how,in,is,it,of,on,or,that,the,this,to,was,what,when,where,who,will,with,www',
2145
- 'Comma-separated list of search stopwords in your language' ) );
2146
-
2147
- $stopwords = array();
2148
- foreach( $words as $word ) {
2149
- $word = trim( $word, "\r\n\t " );
2150
- if ( $word )
2151
- $stopwords[] = $word;
2152
- }
2153
-
2154
- /**
2155
- * Filter stopwords used when parsing search terms.
2156
- *
2157
- * @since 3.7.0
2158
- *
2159
- * @param array $stopwords Stopwords.
2160
- */
2161
- $this->stopwords = apply_filters( 'wp_search_stopwords', $stopwords );
2162
- return $this->stopwords;
2163
- }
2164
-
2165
- /**
2166
- * Generate SQL for the ORDER BY condition based on passed search terms.
2167
- *
2168
- * @global wpdb $wpdb
2169
- * @param array $q Query variables.
2170
- * @return string ORDER BY clause.
2171
- */
2172
- protected function parse_search_order( &$q ) {
2173
- global $wpdb;
2174
-
2175
- if ( $q['search_terms_count'] > 1 ) {
2176
- $num_terms = count( $q['search_orderby_title'] );
2177
- $like = '%' . $wpdb->esc_like( $q['s'] ) . '%';
2178
-
2179
- $search_orderby = '(CASE ';
2180
- // sentence match in 'post_title'
2181
- $search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_title LIKE %s THEN 1 ", $like );
2182
-
2183
- // sanity limit, sort as sentence when more than 6 terms
2184
- // (few searches are longer than 6 terms and most titles are not)
2185
- if ( $num_terms < 7 ) {
2186
- // all words in title
2187
- $search_orderby .= 'WHEN ' . implode( ' AND ', $q['search_orderby_title'] ) . ' THEN 2 ';
2188
- // any word in title, not needed when $num_terms == 1
2189
- if ( $num_terms > 1 )
2190
- $search_orderby .= 'WHEN ' . implode( ' OR ', $q['search_orderby_title'] ) . ' THEN 3 ';
2191
- }
2192
-
2193
- // sentence match in 'post_content'
2194
- $search_orderby .= $wpdb->prepare( "WHEN $wpdb->posts.post_content LIKE %s THEN 4 ", $like );
2195
- $search_orderby .= 'ELSE 5 END)';
2196
- } else {
2197
- // single word or sentence search
2198
- $search_orderby = reset( $q['search_orderby_title'] ) . ' DESC';
2199
- }
2200
-
2201
- return $search_orderby;
2202
- }
2203
-
2204
- /**
2205
- * If the passed orderby value is allowed, convert the alias to a
2206
- * properly-prefixed orderby value.
2207
- *
2208
- * @since 4.0.0
2209
- * @access protected
2210
- *
2211
- * @global wpdb $wpdb WordPress database access abstraction object.
2212
- *
2213
- * @param string $orderby Alias for the field to order by.
2214
- * @return string|bool Table-prefixed value to used in the ORDER clause. False otherwise.
2215
- */
2216
- protected function parse_orderby( $orderby ) {
2217
- global $wpdb;
2218
-
2219
- // Used to filter values.
2220
- $allowed_keys = array(
2221
- 'post_name', 'post_author', 'post_date', 'post_title', 'post_modified',
2222
- 'post_parent', 'post_type', 'name', 'author', 'date', 'title', 'modified',
2223
- 'parent', 'type', 'ID', 'menu_order', 'comment_count', 'rand',
2224
- );
2225
-
2226
- $primary_meta_key = '';
2227
- $primary_meta_query = false;
2228
- if ( ! empty( $this->meta_query->queries ) ) {
2229
- $primary_meta_query = reset( $this->meta_query->queries );
2230
-
2231
- if ( ! empty( $primary_meta_query['key'] ) ) {
2232
- $primary_meta_key = $primary_meta_query['key'];
2233
- $allowed_keys[] = $primary_meta_key;
2234
- }
2235
-
2236
- $allowed_keys[] = 'meta_value';
2237
- $allowed_keys[] = 'meta_value_num';
2238
- }
2239
-
2240
- if ( ! in_array( $orderby, $allowed_keys ) ) {
2241
- return false;
2242
- }
2243
-
2244
- switch ( $orderby ) {
2245
- case 'post_name':
2246
- case 'post_author':
2247
- case 'post_date':
2248
- case 'post_title':
2249
- case 'post_modified':
2250
- case 'post_parent':
2251
- case 'post_type':
2252
- case 'ID':
2253
- case 'menu_order':
2254
- case 'comment_count':
2255
- $orderby = "$wpdb->posts.{$orderby}";
2256
- break;
2257
- case 'rand':
2258
- $orderby = 'RAND()';
2259
- break;
2260
- case $primary_meta_key:
2261
- case 'meta_value':
2262
- if ( ! empty( $primary_meta_query['type'] ) ) {
2263
- $sql_type = $this->meta_query->get_cast_for_type( $primary_meta_query['type'] );
2264
- $orderby = "CAST($wpdb->postmeta.meta_value AS {$sql_type})";
2265
- } else {
2266
- $orderby = "$wpdb->postmeta.meta_value";
2267
- }
2268
- break;
2269
- case 'meta_value_num':
2270
- $orderby = "$wpdb->postmeta.meta_value+0";
2271
- break;
2272
- default:
2273
- $orderby = "$wpdb->posts.post_" . $orderby;
2274
- break;
2275
- }
2276
-
2277
- return $orderby;
2278
- }
2279
-
2280
- /**
2281
- * Parse an 'order' query variable and cast it to ASC or DESC as necessary.
2282
- *
2283
- * @since 4.0.0
2284
- * @access protected
2285
- *
2286
- * @param string $order The 'order' query variable.
2287
- * @return string The sanitized 'order' query variable.
2288
- */
2289
- protected function parse_order( $order ) {
2290
- if ( ! is_string( $order ) || empty( $order ) ) {
2291
- return 'DESC';
2292
- }
2293
-
2294
- if ( 'ASC' === strtoupper( $order ) ) {
2295
- return 'ASC';
2296
- } else {
2297
- return 'DESC';
2298
- }
2299
- }
2300
-
2301
- /**
2302
- * Sets the 404 property and saves whether query is feed.
2303
- *
2304
- * @since 2.0.0
2305
- * @access public
2306
- */
2307
- public function set_404() {
2308
- $is_feed = $this->is_feed;
2309
-
2310
- $this->init_query_flags();
2311
- $this->is_404 = true;
2312
-
2313
- $this->is_feed = $is_feed;
2314
- }
2315
-
2316
- /**
2317
- * Retrieve query variable.
2318
- *
2319
- * @since 1.5.0
2320
- * @access public
2321
- *
2322
- * @param string $query_var Query variable key.
2323
- * @param mixed $default Value to return if the query variable is not set. Default ''.
2324
- * @return mixed
2325
- */
2326
- public function get( $query_var, $default = '' ) {
2327
- if ( isset( $this->query_vars[ $query_var ] ) ) {
2328
- return $this->query_vars[ $query_var ];
2329
- }
2330
-
2331
- return $default;
2332
- }
2333
-
2334
- /**
2335
- * Set query variable.
2336
- *
2337
- * @since 1.5.0
2338
- * @access public
2339
- *
2340
- * @param string $query_var Query variable key.
2341
- * @param mixed $value Query variable value.
2342
- */
2343
- public function set($query_var, $value) {
2344
- $this->query_vars[$query_var] = $value;
2345
- }
2346
-
2347
- /**
2348
- * Retrieve the posts based on query variables.
2349
- *
2350
- * There are a few filters and actions that can be used to modify the post
2351
- * database query.
2352
- *
2353
- * @since 1.5.0
2354
- * @access public
2355
- * @uses do_action_ref_array() Calls 'pre_get_posts' hook before retrieving posts.
2356
- *
2357
- * @return array List of posts.
2358
- */
2359
- public function get_posts() {
2360
- global $wpdb;
2361
-
2362
- $this->parse_query();
2363
-
2364
- /**
2365
- * Fires after the query variable object is created, but before the actual query is run.
2366
- *
2367
- * Note: If using conditional tags, use the method versions within the passed instance
2368
- * (e.g. $this->is_main_query() instead of is_main_query()). This is because the functions
2369
- * like is_main_query() test against the global $wp_query instance, not the passed one.
2370
- *
2371
- * @since 2.0.0
2372
- *
2373
- * @param WP_Query &$this The WP_Query instance (passed by reference).
2374
- */
2375
- do_action_ref_array( 'pre_get_posts', array( &$this ) );
2376
-
2377
- // Shorthand.
2378
- $q = &$this->query_vars;
2379
-
2380
- // Fill again in case pre_get_posts unset some vars.
2381
- $q = $this->fill_query_vars($q);
2382
-
2383
- // Parse meta query
2384
- $this->meta_query = new WP_Meta_Query();
2385
- $this->meta_query->parse_query_vars( $q );
2386
-
2387
- // Set a flag if a pre_get_posts hook changed the query vars.
2388
- $hash = md5( serialize( $this->query_vars ) );
2389
- if ( $hash != $this->query_vars_hash ) {
2390
- $this->query_vars_changed = true;
2391
- $this->query_vars_hash = $hash;
2392
- }
2393
- unset($hash);
2394
-
2395
- // First let's clear some variables
2396
- $distinct = '';
2397
- $whichauthor = '';
2398
- $whichmimetype = '';
2399
- $where = '';
2400
- $limits = '';
2401
- $join = '';
2402
- $search = '';
2403
- $groupby = '';
2404
- $post_status_join = false;
2405
- $page = 1;
2406
-
2407
- if ( isset( $q['caller_get_posts'] ) ) {
2408
- _deprecated_argument( 'WP_Query', '3.1', __( '"caller_get_posts" is deprecated. Use "ignore_sticky_posts" instead.' ) );
2409
- if ( !isset( $q['ignore_sticky_posts'] ) )
2410
- $q['ignore_sticky_posts'] = $q['caller_get_posts'];
2411
- }
2412
-
2413
- if ( !isset( $q['ignore_sticky_posts'] ) )
2414
- $q['ignore_sticky_posts'] = false;
2415
-
2416
- if ( !isset($q['suppress_filters']) )
2417
- $q['suppress_filters'] = false;
2418
-
2419
- if ( !isset($q['cache_results']) ) {
2420
- if ( wp_using_ext_object_cache() )
2421
- $q['cache_results'] = false;
2422
- else
2423
- $q['cache_results'] = true;
2424
- }
2425
-
2426
- if ( !isset($q['update_post_term_cache']) )
2427
- $q['update_post_term_cache'] = true;
2428
-
2429
- if ( !isset($q['update_post_meta_cache']) )
2430
- $q['update_post_meta_cache'] = true;
2431
-
2432
- if ( !isset($q['post_type']) ) {
2433
- if ( $this->is_search )
2434
- $q['post_type'] = 'any';
2435
- else
2436
- $q['post_type'] = '';
2437
- }
2438
- $post_type = $q['post_type'];
2439
- if ( empty( $q['posts_per_page'] ) ) {
2440
- $q['posts_per_page'] = get_option( 'posts_per_page' );
2441
- }
2442
- if ( isset($q['showposts']) && $q['showposts'] ) {
2443
- $q['showposts'] = (int) $q['showposts'];
2444
- $q['posts_per_page'] = $q['showposts'];
2445
- }
2446
- if ( (isset($q['posts_per_archive_page']) && $q['posts_per_archive_page'] != 0) && ($this->is_archive || $this->is_search) )
2447
- $q['posts_per_page'] = $q['posts_per_archive_page'];
2448
- if ( !isset($q['nopaging']) ) {
2449
- if ( $q['posts_per_page'] == -1 ) {
2450
- $q['nopaging'] = true;
2451
- } else {
2452
- $q['nopaging'] = false;
2453
- }
2454
- }
2455
-
2456
- if ( $this->is_feed ) {
2457
- // This overrides posts_per_page.
2458
- if ( ! empty( $q['posts_per_rss'] ) ) {
2459
- $q['posts_per_page'] = $q['posts_per_rss'];
2460
- } else {
2461
- $q['posts_per_page'] = get_option( 'posts_per_rss' );
2462
- }
2463
- $q['nopaging'] = false;
2464
- }
2465
- $q['posts_per_page'] = (int) $q['posts_per_page'];
2466
- if ( $q['posts_per_page'] < -1 )
2467
- $q['posts_per_page'] = abs($q['posts_per_page']);
2468
- else if ( $q['posts_per_page'] == 0 )
2469
- $q['posts_per_page'] = 1;
2470
-
2471
- if ( !isset($q['comments_per_page']) || $q['comments_per_page'] == 0 )
2472
- $q['comments_per_page'] = get_option('comments_per_page');
2473
-
2474
- if ( $this->is_home && (empty($this->query) || $q['preview'] == 'true') && ( 'page' == get_option('show_on_front') ) && get_option('page_on_front') ) {
2475
- $this->is_page = true;
2476
- $this->is_home = false;
2477
- $q['page_id'] = get_option('page_on_front');
2478
- }
2479
-
2480
- if ( isset($q['page']) ) {
2481
- $q['page'] = trim($q['page'], '/');
2482
- $q['page'] = absint($q['page']);
2483
- }
2484
-
2485
- // If true, forcibly turns off SQL_CALC_FOUND_ROWS even when limits are present.
2486
- if ( isset($q['no_found_rows']) )
2487
- $q['no_found_rows'] = (bool) $q['no_found_rows'];
2488
- else
2489
- $q['no_found_rows'] = false;
2490
-
2491
- switch ( $q['fields'] ) {
2492
- case 'ids':
2493
- $fields = "$wpdb->posts.ID";
2494
- break;
2495
- case 'id=>parent':
2496
- $fields = "$wpdb->posts.ID, $wpdb->posts.post_parent";
2497
- break;
2498
- default:
2499
- $fields = "$wpdb->posts.*";
2500
- }
2501
-
2502
- if ( '' !== $q['menu_order'] )
2503
- $where .= " AND $wpdb->posts.menu_order = " . $q['menu_order'];
2504
-
2505
- // The "m" parameter is meant for months but accepts datetimes of varying specificity
2506
- if ( $q['m'] ) {
2507
- $where .= " AND YEAR($wpdb->posts.post_date)=" . substr($q['m'], 0, 4);
2508
- if ( strlen($q['m']) > 5 )
2509
- $where .= " AND MONTH($wpdb->posts.post_date)=" . substr($q['m'], 4, 2);
2510
- if ( strlen($q['m']) > 7 )
2511
- $where .= " AND DAYOFMONTH($wpdb->posts.post_date)=" . substr($q['m'], 6, 2);
2512
- if ( strlen($q['m']) > 9 )
2513
- $where .= " AND HOUR($wpdb->posts.post_date)=" . substr($q['m'], 8, 2);
2514
- if ( strlen($q['m']) > 11 )
2515
- $where .= " AND MINUTE($wpdb->posts.post_date)=" . substr($q['m'], 10, 2);
2516
- if ( strlen($q['m']) > 13 )
2517
- $where .= " AND SECOND($wpdb->posts.post_date)=" . substr($q['m'], 12, 2);
2518
- }
2519
-
2520
- // Handle the other individual date parameters
2521
- $date_parameters = array();
2522
-
2523
- if ( '' !== $q['hour'] )
2524
- $date_parameters['hour'] = $q['hour'];
2525
-
2526
- if ( '' !== $q['minute'] )
2527
- $date_parameters['minute'] = $q['minute'];
2528
-
2529
- if ( '' !== $q['second'] )
2530
- $date_parameters['second'] = $q['second'];
2531
-
2532
- if ( $q['year'] )
2533
- $date_parameters['year'] = $q['year'];
2534
-
2535
- if ( $q['monthnum'] )
2536
- $date_parameters['monthnum'] = $q['monthnum'];
2537
-
2538
- if ( $q['w'] )
2539
- $date_parameters['week'] = $q['w'];
2540
-
2541
- if ( $q['day'] )
2542
- $date_parameters['day'] = $q['day'];
2543
-
2544
- if ( $date_parameters ) {
2545
- $date_query = new WP_Date_Query( array( $date_parameters ) );
2546
- $where .= $date_query->get_sql();
2547
- }
2548
- unset( $date_parameters, $date_query );
2549
-
2550
- // Handle complex date queries
2551
- if ( ! empty( $q['date_query'] ) ) {
2552
- $this->date_query = new WP_Date_Query( $q['date_query'] );
2553
- $where .= $this->date_query->get_sql();
2554
- }
2555
-
2556
-
2557
- // If we've got a post_type AND it's not "any" post_type.
2558
- if ( !empty($q['post_type']) && 'any' != $q['post_type'] ) {
2559
- foreach ( (array)$q['post_type'] as $_post_type ) {
2560
- $ptype_obj = get_post_type_object($_post_type);
2561
- if ( !$ptype_obj || !$ptype_obj->query_var || empty($q[ $ptype_obj->query_var ]) )
2562
- continue;
2563
-
2564
- if ( ! $ptype_obj->hierarchical ) {
2565
- // Non-hierarchical post types can directly use 'name'.
2566
- $q['name'] = $q[ $ptype_obj->query_var ];
2567
- } else {
2568
- // Hierarchical post types will operate through 'pagename'.
2569
- $q['pagename'] = $q[ $ptype_obj->query_var ];
2570
- $q['name'] = '';
2571
- }
2572
-
2573
- // Only one request for a slug is possible, this is why name & pagename are overwritten above.
2574
- break;
2575
- } //end foreach
2576
- unset($ptype_obj);
2577
- }
2578
-
2579
- if ( '' != $q['name'] ) {
2580
- $q['name'] = sanitize_title_for_query( $q['name'] );
2581
- $where .= " AND $wpdb->posts.post_name = '" . $q['name'] . "'";
2582
- } elseif ( '' != $q['pagename'] ) {
2583
- if ( isset($this->queried_object_id) ) {
2584
- $reqpage = $this->queried_object_id;
2585
- } else {
2586
- if ( 'page' != $q['post_type'] ) {
2587
- foreach ( (array)$q['post_type'] as $_post_type ) {
2588
- $ptype_obj = get_post_type_object($_post_type);
2589
- if ( !$ptype_obj || !$ptype_obj->hierarchical )
2590
- continue;
2591
-
2592
- $reqpage = get_page_by_path($q['pagename'], OBJECT, $_post_type);
2593
- if ( $reqpage )
2594
- break;
2595
- }
2596
- unset($ptype_obj);
2597
- } else {
2598
- $reqpage = get_page_by_path($q['pagename']);
2599
- }
2600
- if ( !empty($reqpage) )
2601
- $reqpage = $reqpage->ID;
2602
- else
2603
- $reqpage = 0;
2604
- }
2605
-
2606
- $page_for_posts = get_option('page_for_posts');
2607
- if ( ('page' != get_option('show_on_front') ) || empty($page_for_posts) || ( $reqpage != $page_for_posts ) ) {
2608
- $q['pagename'] = sanitize_title_for_query( wp_basename( $q['pagename'] ) );
2609
- $q['name'] = $q['pagename'];
2610
- $where .= " AND ($wpdb->posts.ID = '$reqpage')";
2611
- $reqpage_obj = get_post( $reqpage );
2612
- if ( is_object($reqpage_obj) && 'attachment' == $reqpage_obj->post_type ) {
2613
- $this->is_attachment = true;
2614
- $post_type = $q['post_type'] = 'attachment';
2615
- $this->is_page = true;
2616
- $q['attachment_id'] = $reqpage;
2617
- }
2618
- }
2619
- } elseif ( '' != $q['attachment'] ) {
2620
- $q['attachment'] = sanitize_title_for_query( wp_basename( $q['attachment'] ) );
2621
- $q['name'] = $q['attachment'];
2622
- $where .= " AND $wpdb->posts.post_name = '" . $q['attachment'] . "'";
2623
- }
2624
-
2625
-
2626
- if ( intval($q['comments_popup']) )
2627
- $q['p'] = absint($q['comments_popup']);
2628
-
2629
- // If an attachment is requested by number, let it supersede any post number.
2630
- if ( $q['attachment_id'] )
2631
- $q['p'] = absint($q['attachment_id']);
2632
-
2633
- // If a post number is specified, load that post
2634
- if ( $q['p'] ) {
2635
- $where .= " AND {$wpdb->posts}.ID = " . $q['p'];
2636
- } elseif ( $q['post__in'] ) {
2637
- $post__in = implode(',', array_map( 'absint', $q['post__in'] ));
2638
- $where .= " AND {$wpdb->posts}.ID IN ($post__in)";
2639
- } elseif ( $q['post__not_in'] ) {
2640
- $post__not_in = implode(',', array_map( 'absint', $q['post__not_in'] ));
2641
- $where .= " AND {$wpdb->posts}.ID NOT IN ($post__not_in)";
2642
- }
2643
-
2644
- if ( is_numeric( $q['post_parent'] ) ) {
2645
- $where .= $wpdb->prepare( " AND $wpdb->posts.post_parent = %d ", $q['post_parent'] );
2646
- } elseif ( $q['post_parent__in'] ) {
2647
- $post_parent__in = implode( ',', array_map( 'absint', $q['post_parent__in'] ) );
2648
- $where .= " AND {$wpdb->posts}.post_parent IN ($post_parent__in)";
2649
- } elseif ( $q['post_parent__not_in'] ) {
2650
- $post_parent__not_in = implode( ',', array_map( 'absint', $q['post_parent__not_in'] ) );
2651
- $where .= " AND {$wpdb->posts}.post_parent NOT IN ($post_parent__not_in)";
2652
- }
2653
-
2654
- if ( $q['page_id'] ) {
2655
- if ( ('page' != get_option('show_on_front') ) || ( $q['page_id'] != get_option('page_for_posts') ) ) {
2656
- $q['p'] = $q['page_id'];
2657
- $where = " AND {$wpdb->posts}.ID = " . $q['page_id'];
2658
- }
2659
- }
2660
-
2661
- // If a search pattern is specified, load the posts that match.
2662
- if ( ! empty( $q['s'] ) ) {
2663
- $search = $this->parse_search( $q );
2664
- }
2665
-
2666
- /**
2667
- * Filter the search SQL that is used in the WHERE clause of WP_Query.
2668
- *
2669
- * @since 3.0.0
2670
- *
2671
- * @param string $search Search SQL for WHERE clause.
2672
- * @param WP_Query $this The current WP_Query object.
2673
- */
2674
- $search = apply_filters_ref_array( 'posts_search', array( $search, &$this ) );
2675
-
2676
- // Taxonomies
2677
- if ( !$this->is_singular ) {
2678
- $this->parse_tax_query( $q );
2679
-
2680
- $clauses = $this->tax_query->get_sql( $wpdb->posts, 'ID' );
2681
-
2682
- $join .= $clauses['join'];
2683
- $where .= $clauses['where'];
2684
- }
2685
-
2686
- if ( $this->is_tax ) {
2687
- if ( empty($post_type) ) {
2688
- // Do a fully inclusive search for currently registered post types of queried taxonomies
2689
- $post_type = array();
2690
- $taxonomies = wp_list_pluck( $this->tax_query->queries, 'taxonomy' );
2691
- foreach ( get_post_types( array( 'exclude_from_search' => false ) ) as $pt ) {
2692
- $object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt );
2693
- if ( array_intersect( $taxonomies, $object_taxonomies ) )
2694
- $post_type[] = $pt;
2695
- }
2696
- if ( ! $post_type )
2697
- $post_type = 'any';
2698
- elseif ( count( $post_type ) == 1 )
2699
- $post_type = $post_type[0];
2700
-
2701
- $post_status_join = true;
2702
- } elseif ( in_array('attachment', (array) $post_type) ) {
2703
- $post_status_join = true;
2704
- }
2705
- }
2706
-
2707
- // Back-compat
2708
- if ( !empty($this->tax_query->queries) ) {
2709
- $tax_query_in_and = wp_list_filter( $this->tax_query->queries, array( 'operator' => 'NOT IN' ), 'NOT' );
2710
- if ( !empty( $tax_query_in_and ) ) {
2711
- if ( !isset( $q['taxonomy'] ) ) {
2712
- foreach ( $tax_query_in_and as $a_tax_query ) {
2713
- if ( !in_array( $a_tax_query['taxonomy'], array( 'category', 'post_tag' ) ) ) {
2714
- $q['taxonomy'] = $a_tax_query['taxonomy'];
2715
- if ( 'slug' == $a_tax_query['field'] )
2716
- $q['term'] = $a_tax_query['terms'][0];
2717
- else
2718
- $q['term_id'] = $a_tax_query['terms'][0];
2719
-
2720
- break;
2721
- }
2722
- }
2723
- }
2724
-
2725
- $cat_query = wp_list_filter( $tax_query_in_and, array( 'taxonomy' => 'category' ) );
2726
- if ( ! empty( $cat_query ) ) {
2727
- $cat_query = reset( $cat_query );
2728
-
2729
- if ( ! empty( $cat_query['terms'][0] ) ) {
2730
- $the_cat = get_term_by( $cat_query['field'], $cat_query['terms'][0], 'category' );
2731
- if ( $the_cat ) {
2732
- $this->set( 'cat', $the_cat->term_id );
2733
- $this->set( 'category_name', $the_cat->slug );
2734
- }
2735
- unset( $the_cat );
2736
- }
2737
- }
2738
- unset( $cat_query );
2739
-
2740
- $tag_query = wp_list_filter( $tax_query_in_and, array( 'taxonomy' => 'post_tag' ) );
2741
- if ( ! empty( $tag_query ) ) {
2742
- $tag_query = reset( $tag_query );
2743
-
2744
- if ( ! empty( $tag_query['terms'][0] ) ) {
2745
- $the_tag = get_term_by( $tag_query['field'], $tag_query['terms'][0], 'post_tag' );
2746
- if ( $the_tag )
2747
- $this->set( 'tag_id', $the_tag->term_id );
2748
- unset( $the_tag );
2749
- }
2750
- }
2751
- unset( $tag_query );
2752
- }
2753
- }
2754
-
2755
- if ( !empty( $this->tax_query->queries ) || !empty( $this->meta_query->queries ) ) {
2756
- $groupby = "{$wpdb->posts}.ID";
2757
- }
2758
-
2759
- // Author/user stuff
2760
-
2761
- if ( ! empty( $q['author'] ) && $q['author'] != '0' ) {
2762
- $q['author'] = addslashes_gpc( '' . urldecode( $q['author'] ) );
2763
- $authors = array_unique( array_map( 'intval', preg_split( '/[,\s]+/', $q['author'] ) ) );
2764
- foreach ( $authors as $author ) {
2765
- $key = $author > 0 ? 'author__in' : 'author__not_in';
2766
- $q[$key][] = abs( $author );
2767
- }
2768
- $q['author'] = implode( ',', $authors );
2769
- }
2770
-
2771
- if ( ! empty( $q['author__not_in'] ) ) {
2772
- $author__not_in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__not_in'] ) ) );
2773
- $where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";
2774
- } elseif ( ! empty( $q['author__in'] ) ) {
2775
- $author__in = implode( ',', array_map( 'absint', array_unique( (array) $q['author__in'] ) ) );
2776
- $where .= " AND {$wpdb->posts}.post_author IN ($author__in) ";
2777
- }
2778
-
2779
- // Author stuff for nice URLs
2780
-
2781
- if ( '' != $q['author_name'] ) {
2782
- if ( strpos($q['author_name'], '/') !== false ) {
2783
- $q['author_name'] = explode('/', $q['author_name']);
2784
- if ( $q['author_name'][ count($q['author_name'])-1 ] ) {
2785
- $q['author_name'] = $q['author_name'][count($q['author_name'])-1]; // no trailing slash
2786
- } else {
2787
- $q['author_name'] = $q['author_name'][count($q['author_name'])-2]; // there was a trailing slash
2788
- }
2789
- }
2790
- $q['author_name'] = sanitize_title_for_query( $q['author_name'] );
2791
- $q['author'] = get_user_by('slug', $q['author_name']);
2792
- if ( $q['author'] )
2793
- $q['author'] = $q['author']->ID;
2794
- $whichauthor .= " AND ($wpdb->posts.post_author = " . absint($q['author']) . ')';
2795
- }
2796
-
2797
- // MIME-Type stuff for attachment browsing
2798
-
2799
- if ( isset( $q['post_mime_type'] ) && '' != $q['post_mime_type'] )
2800
- $whichmimetype = wp_post_mime_type_where( $q['post_mime_type'], $wpdb->posts );
2801
-
2802
- $where .= $search . $whichauthor . $whichmimetype;
2803
-
2804
- $rand = ( isset( $q['orderby'] ) && 'rand' === $q['orderby'] );
2805
- if ( ! isset( $q['order'] ) ) {
2806
- $q['order'] = $rand ? '' : 'DESC';
2807
- } else {
2808
- $q['order'] = $rand ? '' : $this->parse_order( $q['order'] );
2809
- }
2810
-
2811
- // Order by.
2812
- if ( empty( $q['orderby'] ) ) {
2813
- /*
2814
- * Boolean false or empty array blanks out ORDER BY,
2815
- * while leaving the value unset or otherwise empty sets the default.
2816
- */
2817
- if ( isset( $q['orderby'] ) && ( is_array( $q['orderby'] ) || false === $q['orderby'] ) ) {
2818
- $orderby = '';
2819
- } else {
2820
- $orderby = "$wpdb->posts.post_date " . $q['order'];
2821
- }
2822
- } elseif ( 'none' == $q['orderby'] ) {
2823
- $orderby = '';
2824
- } elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
2825
- $orderby = "FIELD( {$wpdb->posts}.ID, $post__in )";
2826
- } elseif ( $q['orderby'] == 'post_parent__in' && ! empty( $post_parent__in ) ) {
2827
- $orderby = "FIELD( {$wpdb->posts}.post_parent, $post_parent__in )";
2828
- } else {
2829
- $orderby_array = array();
2830
- if ( is_array( $q['orderby'] ) ) {
2831
- foreach ( $q['orderby'] as $_orderby => $order ) {
2832
- $orderby = addslashes_gpc( urldecode( $_orderby ) );
2833
- $parsed = $this->parse_orderby( $orderby );
2834
-
2835
- if ( ! $parsed ) {
2836
- continue;
2837
- }
2838
-
2839
- $orderby_array[] = $parsed . ' ' . $this->parse_order( $order );
2840
- }
2841
- $orderby = implode( ', ', $orderby_array );
2842
-
2843
- } else {
2844
- $q['orderby'] = urldecode( $q['orderby'] );
2845
- $q['orderby'] = addslashes_gpc( $q['orderby'] );
2846
-
2847
- foreach ( explode( ' ', $q['orderby'] ) as $i => $orderby ) {
2848
- $parsed = $this->parse_orderby( $orderby );
2849
- // Only allow certain values for safety.
2850
- if ( ! $parsed ) {
2851
- continue;
2852
- }
2853
-
2854
- $orderby_array[] = $parsed;
2855
- }
2856
- $orderby = implode( ' ' . $q['order'] . ', ', $orderby_array );
2857
-
2858
- if ( empty( $orderby ) ) {
2859
- $orderby = "$wpdb->posts.post_date " . $q['order'];
2860
- } elseif ( ! empty( $q['order'] ) ) {
2861
- $orderby .= " {$q['order']}";
2862
- }
2863
- }
2864
- }
2865
-
2866
- // Order search results by relevance only when another "orderby" is not specified in the query.
2867
- if ( ! empty( $q['s'] ) ) {
2868
- $search_orderby = '';
2869
- if ( ! empty( $q['search_orderby_title'] ) && ( empty( $q['orderby'] ) && ! $this->is_feed ) || ( isset( $q['orderby'] ) && 'relevance' === $q['orderby'] ) )
2870
- $search_orderby = $this->parse_search_order( $q );
2871
-
2872
- /**
2873
- * Filter the ORDER BY used when ordering search results.
2874
- *
2875
- * @since 3.7.0
2876
- *
2877
- * @param string $search_orderby The ORDER BY clause.
2878
- * @param WP_Query $this The current WP_Query instance.
2879
- */
2880
- $search_orderby = apply_filters( 'posts_search_orderby', $search_orderby, $this );
2881
- if ( $search_orderby )
2882
- $orderby = $orderby ? $search_orderby . ', ' . $orderby : $search_orderby;
2883
- }
2884
-
2885
- if ( is_array( $post_type ) && count( $post_type ) > 1 ) {
2886
- $post_type_cap = 'multiple_post_type';
2887
- } else {
2888
- if ( is_array( $post_type ) )
2889
- $post_type = reset( $post_type );
2890
- $post_type_object = get_post_type_object( $post_type );
2891
- if ( empty( $post_type_object ) )
2892
- $post_type_cap = $post_type;
2893
- }
2894
-
2895
- if ( isset( $q['post_password'] ) ) {
2896
- $where .= $wpdb->prepare( " AND $wpdb->posts.post_password = %s", $q['post_password'] );
2897
- if ( empty( $q['perm'] ) ) {
2898
- $q['perm'] = 'readable';
2899
- }
2900
- } elseif ( isset( $q['has_password'] ) ) {
2901
- $where .= sprintf( " AND $wpdb->posts.post_password %s ''", $q['has_password'] ? '!=' : '=' );
2902
- }
2903
-
2904
- if ( 'any' == $post_type ) {
2905
- $in_search_post_types = get_post_types( array('exclude_from_search' => false) );
2906
- if ( empty( $in_search_post_types ) )
2907
- $where .= ' AND 1=0 ';
2908
- else
2909
- $where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $in_search_post_types ) . "')";
2910
- } elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
2911
- $where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $post_type) . "')";
2912
- } elseif ( ! empty( $post_type ) ) {
2913
- $where .= " AND $wpdb->posts.post_type = '$post_type'";
2914
- $post_type_object = get_post_type_object ( $post_type );
2915
- } elseif ( $this->is_attachment ) {
2916
- $where .= " AND $wpdb->posts.post_type = 'attachment'";
2917
- $post_type_object = get_post_type_object ( 'attachment' );
2918
- } elseif ( $this->is_page ) {
2919
- $where .= " AND $wpdb->posts.post_type = 'page'";
2920
- $post_type_object = get_post_type_object ( 'page' );
2921
- } else {
2922
- $where .= " AND $wpdb->posts.post_type = 'post'";
2923
- $post_type_object = get_post_type_object ( 'post' );
2924
- }
2925
-
2926
- $edit_cap = 'edit_post';
2927
- $read_cap = 'read_post';
2928
-
2929
- if ( ! empty( $post_type_object ) ) {
2930
- $edit_others_cap = $post_type_object->cap->edit_others_posts;
2931
- $read_private_cap = $post_type_object->cap->read_private_posts;
2932
- } else {
2933
- $edit_others_cap = 'edit_others_' . $post_type_cap . 's';
2934
- $read_private_cap = 'read_private_' . $post_type_cap . 's';
2935
- }
2936
-
2937
- $user_id = get_current_user_id();
2938
-
2939
- if ( ! empty( $q['post_status'] ) ) {
2940
- $statuswheres = array();
2941
- $q_status = $q['post_status'];
2942
- if ( ! is_array( $q_status ) )
2943
- $q_status = explode(',', $q_status);
2944
- $r_status = array();
2945
- $p_status = array();
2946
- $e_status = array();
2947
- if ( in_array( 'any', $q_status ) ) {
2948
- foreach ( get_post_stati( array( 'exclude_from_search' => true ) ) as $status ) {
2949
- if ( ! in_array( $status, $q_status ) ) {
2950
- $e_status[] = "$wpdb->posts.post_status <> '$status'";
2951
- }
2952
- }
2953
- } else {
2954
- foreach ( get_post_stati() as $status ) {
2955
- if ( in_array( $status, $q_status ) ) {
2956
- if ( 'private' == $status )
2957
- $p_status[] = "$wpdb->posts.post_status = '$status'";
2958
- else
2959
- $r_status[] = "$wpdb->posts.post_status = '$status'";
2960
- }
2961
- }
2962
- }
2963
-
2964
- if ( empty($q['perm'] ) || 'readable' != $q['perm'] ) {
2965
- $r_status = array_merge($r_status, $p_status);
2966
- unset($p_status);
2967
- }
2968
-
2969
- if ( !empty($e_status) ) {
2970
- $statuswheres[] = "(" . join( ' AND ', $e_status ) . ")";
2971
- }
2972
- if ( !empty($r_status) ) {
2973
- if ( !empty($q['perm'] ) && 'editable' == $q['perm'] && !current_user_can($edit_others_cap) )
2974
- $statuswheres[] = "($wpdb->posts.post_author = $user_id " . "AND (" . join( ' OR ', $r_status ) . "))";
2975
- else
2976
- $statuswheres[] = "(" . join( ' OR ', $r_status ) . ")";
2977
- }
2978
- if ( !empty($p_status) ) {
2979
- if ( !empty($q['perm'] ) && 'readable' == $q['perm'] && !current_user_can($read_private_cap) )
2980
- $statuswheres[] = "($wpdb->posts.post_author = $user_id " . "AND (" . join( ' OR ', $p_status ) . "))";
2981
- else
2982
- $statuswheres[] = "(" . join( ' OR ', $p_status ) . ")";
2983
- }
2984
- if ( $post_status_join ) {
2985
- $join .= " LEFT JOIN $wpdb->posts AS p2 ON ($wpdb->posts.post_parent = p2.ID) ";
2986
- foreach ( $statuswheres as $index => $statuswhere )
2987
- $statuswheres[$index] = "($statuswhere OR ($wpdb->posts.post_status = 'inherit' AND " . str_replace($wpdb->posts, 'p2', $statuswhere) . "))";
2988
- }
2989
- $where_status = implode( ' OR ', $statuswheres );
2990
- if ( ! empty( $where_status ) ) {
2991
- $where .= " AND ($where_status)";
2992
- }
2993
- } elseif ( !$this->is_singular ) {
2994
- $where .= " AND ($wpdb->posts.post_status = 'publish'";
2995
-
2996
- // Add public states.
2997
- $public_states = get_post_stati( array('public' => true) );
2998
- foreach ( (array) $public_states as $state ) {
2999
- if ( 'publish' == $state ) // Publish is hard-coded above.
3000
- continue;
3001
- $where .= " OR $wpdb->posts.post_status = '$state'";
3002
- }
3003
-
3004
- if ( $this->is_admin ) {
3005
- // Add protected states that should show in the admin all list.
3006
- $admin_all_states = get_post_stati( array('protected' => true, 'show_in_admin_all_list' => true) );
3007
- foreach ( (array) $admin_all_states as $state )
3008
- $where .= " OR $wpdb->posts.post_status = '$state'";
3009
- }
3010
-
3011
- if ( is_user_logged_in() ) {
3012
- // Add private states that are limited to viewing by the author of a post or someone who has caps to read private states.
3013
- $private_states = get_post_stati( array('private' => true) );
3014
- foreach ( (array) $private_states as $state )
3015
- $where .= current_user_can( $read_private_cap ) ? " OR $wpdb->posts.post_status = '$state'" : " OR $wpdb->posts.post_author = $user_id AND $wpdb->posts.post_status = '$state'";
3016
- }
3017
-
3018
- $where .= ')';
3019
- }
3020
-
3021
- if ( !empty( $this->meta_query->queries ) ) {
3022
- $clauses = $this->meta_query->get_sql( 'post', $wpdb->posts, 'ID', $this );
3023
- $join .= $clauses['join'];
3024
- $where .= $clauses['where'];
3025
- }
3026
-
3027
- /*
3028
- * Apply filters on where and join prior to paging so that any
3029
- * manipulations to them are reflected in the paging by day queries.
3030
- */
3031
- if ( !$q['suppress_filters'] ) {
3032
- /**
3033
- * Filter the WHERE clause of the query.
3034
- *
3035
- * @since 1.5.0
3036
- *
3037
- * @param string $where The WHERE clause of the query.
3038
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3039
- */
3040
- $where = apply_filters_ref_array( 'posts_where', array( $where, &$this ) );
3041
-
3042
- /**
3043
- * Filter the JOIN clause of the query.
3044
- *
3045
- * @since 1.5.0
3046
- *
3047
- * @param string $where The JOIN clause of the query.
3048
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3049
- */
3050
- $join = apply_filters_ref_array( 'posts_join', array( $join, &$this ) );
3051
- }
3052
-
3053
- // Paging
3054
- if ( empty($q['nopaging']) && !$this->is_singular ) {
3055
- $page = absint($q['paged']);
3056
- if ( !$page )
3057
- $page = 1;
3058
-
3059
- if ( empty($q['offset']) ) {
3060
- $pgstrt = absint( ( $page - 1 ) * $q['posts_per_page'] ) . ', ';
3061
- } else { // we're ignoring $page and using 'offset'
3062
- $q['offset'] = absint($q['offset']);
3063
- $pgstrt = $q['offset'] . ', ';
3064
- }
3065
- $limits = 'LIMIT ' . $pgstrt . $q['posts_per_page'];
3066
- }
3067
-
3068
- // Comments feeds
3069
- if ( $this->is_comment_feed && ! $this->is_singular ) {
3070
- if ( $this->is_archive || $this->is_search ) {
3071
- $cjoin = "JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) $join ";
3072
- $cwhere = "WHERE comment_approved = '1' $where";
3073
- $cgroupby = "$wpdb->comments.comment_id";
3074
- } else { // Other non singular e.g. front
3075
- $cjoin = "JOIN $wpdb->posts ON ( $wpdb->comments.comment_post_ID = $wpdb->posts.ID )";
3076
- $cwhere = "WHERE post_status = 'publish' AND comment_approved = '1'";
3077
- $cgroupby = '';
3078
- }
3079
-
3080
- if ( !$q['suppress_filters'] ) {
3081
- /**
3082
- * Filter the JOIN clause of the comments feed query before sending.
3083
- *
3084
- * @since 2.2.0
3085
- *
3086
- * @param string $cjoin The JOIN clause of the query.
3087
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3088
- */
3089
- $cjoin = apply_filters_ref_array( 'comment_feed_join', array( $cjoin, &$this ) );
3090
-
3091
- /**
3092
- * Filter the WHERE clause of the comments feed query before sending.
3093
- *
3094
- * @since 2.2.0
3095
- *
3096
- * @param string $cwhere The WHERE clause of the query.
3097
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3098
- */
3099
- $cwhere = apply_filters_ref_array( 'comment_feed_where', array( $cwhere, &$this ) );
3100
-
3101
- /**
3102
- * Filter the GROUP BY clause of the comments feed query before sending.
3103
- *
3104
- * @since 2.2.0
3105
- *
3106
- * @param string $cgroupby The GROUP BY clause of the query.
3107
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3108
- */
3109
- $cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( $cgroupby, &$this ) );
3110
-
3111
- /**
3112
- * Filter the ORDER BY clause of the comments feed query before sending.
3113
- *
3114
- * @since 2.8.0
3115
- *
3116
- * @param string $corderby The ORDER BY clause of the query.
3117
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3118
- */
3119
- $corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
3120
-
3121
- /**
3122
- * Filter the LIMIT clause of the comments feed query before sending.
3123
- *
3124
- * @since 2.8.0
3125
- *
3126
- * @param string $climits The JOIN clause of the query.
3127
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3128
- */
3129
- $climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
3130
- }
3131
- $cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
3132
- $corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
3133
-
3134
- $this->comments = (array) $wpdb->get_results("SELECT $distinct $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits");
3135
- $this->comment_count = count($this->comments);
3136
-
3137
- $post_ids = array();
3138
-
3139
- foreach ( $this->comments as $comment )
3140
- $post_ids[] = (int) $comment->comment_post_ID;
3141
-
3142
- $post_ids = join(',', $post_ids);
3143
- $join = '';
3144
- if ( $post_ids )
3145
- $where = "AND $wpdb->posts.ID IN ($post_ids) ";
3146
- else
3147
- $where = "AND 0";
3148
- }
3149
-
3150
- $pieces = array( 'where', 'groupby', 'join', 'orderby', 'distinct', 'fields', 'limits' );
3151
-
3152
- /*
3153
- * Apply post-paging filters on where and join. Only plugins that
3154
- * manipulate paging queries should use these hooks.
3155
- */
3156
- if ( !$q['suppress_filters'] ) {
3157
- /**
3158
- * Filter the WHERE clause of the query.
3159
- *
3160
- * Specifically for manipulating paging queries.
3161
- *
3162
- * @since 1.5.0
3163
- *
3164
- * @param string $where The WHERE clause of the query.
3165
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3166
- */
3167
- $where = apply_filters_ref_array( 'posts_where_paged', array( $where, &$this ) );
3168
-
3169
- /**
3170
- * Filter the GROUP BY clause of the query.
3171
- *
3172
- * @since 2.0.0
3173
- *
3174
- * @param string $groupby The GROUP BY clause of the query.
3175
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3176
- */
3177
- $groupby = apply_filters_ref_array( 'posts_groupby', array( $groupby, &$this ) );
3178
-
3179
- /**
3180
- * Filter the JOIN clause of the query.
3181
- *
3182
- * Specifically for manipulating paging queries.
3183
- *
3184
- * @since 1.5.0
3185
- *
3186
- * @param string $join The JOIN clause of the query.
3187
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3188
- */
3189
- $join = apply_filters_ref_array( 'posts_join_paged', array( $join, &$this ) );
3190
-
3191
- /**
3192
- * Filter the ORDER BY clause of the query.
3193
- *
3194
- * @since 1.5.1
3195
- *
3196
- * @param string $orderby The ORDER BY clause of the query.
3197
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3198
- */
3199
- $orderby = apply_filters_ref_array( 'posts_orderby', array( $orderby, &$this ) );
3200
-
3201
- /**
3202
- * Filter the DISTINCT clause of the query.
3203
- *
3204
- * @since 2.1.0
3205
- *
3206
- * @param string $distinct The DISTINCT clause of the query.
3207
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3208
- */
3209
- $distinct = apply_filters_ref_array( 'posts_distinct', array( $distinct, &$this ) );
3210
-
3211
- /**
3212
- * Filter the LIMIT clause of the query.
3213
- *
3214
- * @since 2.1.0
3215
- *
3216
- * @param string $limits The LIMIT clause of the query.
3217
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3218
- */
3219
- $limits = apply_filters_ref_array( 'post_limits', array( $limits, &$this ) );
3220
-
3221
- /**
3222
- * Filter the SELECT clause of the query.
3223
- *
3224
- * @since 2.1.0
3225
- *
3226
- * @param string $fields The SELECT clause of the query.
3227
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3228
- */
3229
- $fields = apply_filters_ref_array( 'posts_fields', array( $fields, &$this ) );
3230
-
3231
- /**
3232
- * Filter all query clauses at once, for convenience.
3233
- *
3234
- * Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT,
3235
- * fields (SELECT), and LIMITS clauses.
3236
- *
3237
- * @since 3.1.0
3238
- *
3239
- * @param array $clauses The list of clauses for the query.
3240
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3241
- */
3242
- $clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );
3243
-
3244
- $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
3245
- $groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
3246
- $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
3247
- $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
3248
- $distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
3249
- $fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
3250
- $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
3251
- }
3252
-
3253
- /**
3254
- * Fires to announce the query's current selection parameters.
3255
- *
3256
- * For use by caching plugins.
3257
- *
3258
- * @since 2.3.0
3259
- *
3260
- * @param string $selection The assembled selection query.
3261
- */
3262
- do_action( 'posts_selection', $where . $groupby . $orderby . $limits . $join );
3263
-
3264
- /*
3265
- * Filter again for the benefit of caching plugins.
3266
- * Regular plugins should use the hooks above.
3267
- */
3268
- if ( !$q['suppress_filters'] ) {
3269
- /**
3270
- * Filter the WHERE clause of the query.
3271
- *
3272
- * For use by caching plugins.
3273
- *
3274
- * @since 2.5.0
3275
- *
3276
- * @param string $where The WHERE clause of the query.
3277
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3278
- */
3279
- $where = apply_filters_ref_array( 'posts_where_request', array( $where, &$this ) );
3280
-
3281
- /**
3282
- * Filter the GROUP BY clause of the query.
3283
- *
3284
- * For use by caching plugins.
3285
- *
3286
- * @since 2.5.0
3287
- *
3288
- * @param string $groupby The GROUP BY clause of the query.
3289
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3290
- */
3291
- $groupby = apply_filters_ref_array( 'posts_groupby_request', array( $groupby, &$this ) );
3292
-
3293
- /**
3294
- * Filter the JOIN clause of the query.
3295
- *
3296
- * For use by caching plugins.
3297
- *
3298
- * @since 2.5.0
3299
- *
3300
- * @param string $join The JOIN clause of the query.
3301
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3302
- */
3303
- $join = apply_filters_ref_array( 'posts_join_request', array( $join, &$this ) );
3304
-
3305
- /**
3306
- * Filter the ORDER BY clause of the query.
3307
- *
3308
- * For use by caching plugins.
3309
- *
3310
- * @since 2.5.0
3311
- *
3312
- * @param string $orderby The ORDER BY clause of the query.
3313
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3314
- */
3315
- $orderby = apply_filters_ref_array( 'posts_orderby_request', array( $orderby, &$this ) );
3316
-
3317
- /**
3318
- * Filter the DISTINCT clause of the query.
3319
- *
3320
- * For use by caching plugins.
3321
- *
3322
- * @since 2.5.0
3323
- *
3324
- * @param string $distinct The DISTINCT clause of the query.
3325
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3326
- */
3327
- $distinct = apply_filters_ref_array( 'posts_distinct_request', array( $distinct, &$this ) );
3328
-
3329
- /**
3330
- * Filter the SELECT clause of the query.
3331
- *
3332
- * For use by caching plugins.
3333
- *
3334
- * @since 2.5.0
3335
- *
3336
- * @param string $fields The SELECT clause of the query.
3337
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3338
- */
3339
- $fields = apply_filters_ref_array( 'posts_fields_request', array( $fields, &$this ) );
3340
-
3341
- /**
3342
- * Filter the LIMIT clause of the query.
3343
- *
3344
- * For use by caching plugins.
3345
- *
3346
- * @since 2.5.0
3347
- *
3348
- * @param string $limits The LIMIT clause of the query.
3349
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3350
- */
3351
- $limits = apply_filters_ref_array( 'post_limits_request', array( $limits, &$this ) );
3352
-
3353
- /**
3354
- * Filter all query clauses at once, for convenience.
3355
- *
3356
- * For use by caching plugins.
3357
- *
3358
- * Covers the WHERE, GROUP BY, JOIN, ORDER BY, DISTINCT,
3359
- * fields (SELECT), and LIMITS clauses.
3360
- *
3361
- * @since 3.1.0
3362
- *
3363
- * @param array $pieces The pieces of the query.
3364
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3365
- */
3366
- $clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );
3367
-
3368
- $where = isset( $clauses[ 'where' ] ) ? $clauses[ 'where' ] : '';
3369
- $groupby = isset( $clauses[ 'groupby' ] ) ? $clauses[ 'groupby' ] : '';
3370
- $join = isset( $clauses[ 'join' ] ) ? $clauses[ 'join' ] : '';
3371
- $orderby = isset( $clauses[ 'orderby' ] ) ? $clauses[ 'orderby' ] : '';
3372
- $distinct = isset( $clauses[ 'distinct' ] ) ? $clauses[ 'distinct' ] : '';
3373
- $fields = isset( $clauses[ 'fields' ] ) ? $clauses[ 'fields' ] : '';
3374
- $limits = isset( $clauses[ 'limits' ] ) ? $clauses[ 'limits' ] : '';
3375
- }
3376
-
3377
- if ( ! empty($groupby) )
3378
- $groupby = 'GROUP BY ' . $groupby;
3379
- if ( !empty( $orderby ) )
3380
- $orderby = 'ORDER BY ' . $orderby;
3381
-
3382
- $found_rows = '';
3383
- if ( !$q['no_found_rows'] && !empty($limits) )
3384
- $found_rows = 'SQL_CALC_FOUND_ROWS';
3385
-
3386
- $this->request = $old_request = "SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
3387
-
3388
- if ( !$q['suppress_filters'] ) {
3389
- /**
3390
- * Filter the completed SQL query before sending.
3391
- *
3392
- * @since 2.0.0
3393
- *
3394
- * @param array $request The complete SQL query.
3395
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3396
- */
3397
- $this->request = apply_filters_ref_array( 'posts_request', array( $this->request, &$this ) );
3398
- }
3399
-
3400
- if ( 'ids' == $q['fields'] ) {
3401
- $this->posts = $wpdb->get_col( $this->request );
3402
- $this->post_count = count( $this->posts );
3403
- $this->set_found_posts( $q, $limits );
3404
-
3405
- return array_map( 'intval', $this->posts );
3406
- }
3407
-
3408
- if ( 'id=>parent' == $q['fields'] ) {
3409
- $this->posts = $wpdb->get_results( $this->request );
3410
- $this->post_count = count( $this->posts );
3411
- $this->set_found_posts( $q, $limits );
3412
-
3413
- $r = array();
3414
- foreach ( $this->posts as $post ) {
3415
- $r[ (int) $post->ID ] = (int) $post->post_parent;
3416
- }
3417
- return $r;
3418
- }
3419
-
3420
- $split_the_query = ( $old_request == $this->request && "$wpdb->posts.*" == $fields && !empty( $limits ) && $q['posts_per_page'] < 500 );
3421
-
3422
- /**
3423
- * Filter whether to split the query.
3424
- *
3425
- * Splitting the query will cause it to fetch just the IDs of the found posts
3426
- * (and then individually fetch each post by ID), rather than fetching every
3427
- * complete row at once. One massive result vs. many small results.
3428
- *
3429
- * @since 3.4.0
3430
- *
3431
- * @param bool $split_the_query Whether or not to split the query.
3432
- * @param WP_Query $this The WP_Query instance.
3433
- */
3434
- $split_the_query = apply_filters( 'split_the_query', $split_the_query, $this );
3435
-
3436
- if ( $split_the_query ) {
3437
- // First get the IDs and then fill in the objects
3438
-
3439
- $this->request = "SELECT $found_rows $distinct $wpdb->posts.ID FROM $wpdb->posts $join WHERE 1=1 $where $groupby $orderby $limits";
3440
-
3441
- /**
3442
- * Filter the Post IDs SQL request before sending.
3443
- *
3444
- * @since 3.4.0
3445
- *
3446
- * @param string $request The post ID request.
3447
- * @param WP_Query $this The WP_Query instance.
3448
- */
3449
- $this->request = apply_filters( 'posts_request_ids', $this->request, $this );
3450
-
3451
- $ids = $wpdb->get_col( $this->request );
3452
-
3453
- if ( $ids ) {
3454
- $this->posts = $ids;
3455
- $this->set_found_posts( $q, $limits );
3456
- _prime_post_caches( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
3457
- } else {
3458
- $this->posts = array();
3459
- }
3460
- } else {
3461
- $this->posts = $wpdb->get_results( $this->request );
3462
- $this->set_found_posts( $q, $limits );
3463
- }
3464
-
3465
- // Convert to WP_Post objects
3466
- if ( $this->posts )
3467
- $this->posts = array_map( 'get_post', $this->posts );
3468
-
3469
- if ( ! $q['suppress_filters'] ) {
3470
- /**
3471
- * Filter the raw post results array, prior to status checks.
3472
- *
3473
- * @since 2.3.0
3474
- *
3475
- * @param array $posts The post results array.
3476
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3477
- */
3478
- $this->posts = apply_filters_ref_array( 'posts_results', array( $this->posts, &$this ) );
3479
- }
3480
-
3481
- if ( !empty($this->posts) && $this->is_comment_feed && $this->is_singular ) {
3482
- /** This filter is documented in wp-includes/query.php */
3483
- $cjoin = apply_filters_ref_array( 'comment_feed_join', array( '', &$this ) );
3484
-
3485
- /** This filter is documented in wp-includes/query.php */
3486
- $cwhere = apply_filters_ref_array( 'comment_feed_where', array( "WHERE comment_post_ID = '{$this->posts[0]->ID}' AND comment_approved = '1'", &$this ) );
3487
-
3488
- /** This filter is documented in wp-includes/query.php */
3489
- $cgroupby = apply_filters_ref_array( 'comment_feed_groupby', array( '', &$this ) );
3490
- $cgroupby = ( ! empty( $cgroupby ) ) ? 'GROUP BY ' . $cgroupby : '';
3491
-
3492
- /** This filter is documented in wp-includes/query.php */
3493
- $corderby = apply_filters_ref_array( 'comment_feed_orderby', array( 'comment_date_gmt DESC', &$this ) );
3494
- $corderby = ( ! empty( $corderby ) ) ? 'ORDER BY ' . $corderby : '';
3495
-
3496
- /** This filter is documented in wp-includes/query.php */
3497
- $climits = apply_filters_ref_array( 'comment_feed_limits', array( 'LIMIT ' . get_option('posts_per_rss'), &$this ) );
3498
-
3499
- $comments_request = "SELECT $wpdb->comments.* FROM $wpdb->comments $cjoin $cwhere $cgroupby $corderby $climits";
3500
- $this->comments = $wpdb->get_results($comments_request);
3501
- $this->comment_count = count($this->comments);
3502
- }
3503
-
3504
- // Check post status to determine if post should be displayed.
3505
- if ( !empty($this->posts) && ($this->is_single || $this->is_page) ) {
3506
- $status = get_post_status($this->posts[0]);
3507
- $post_status_obj = get_post_status_object($status);
3508
- //$type = get_post_type($this->posts[0]);
3509
- if ( !$post_status_obj->public ) {
3510
- if ( ! is_user_logged_in() ) {
3511
- // User must be logged in to view unpublished posts.
3512
- $this->posts = array();
3513
- } else {
3514
- if ( $post_status_obj->protected ) {
3515
- // User must have edit permissions on the draft to preview.
3516
- if ( ! current_user_can($edit_cap, $this->posts[0]->ID) ) {
3517
- $this->posts = array();
3518
- } else {
3519
- $this->is_preview = true;
3520
- if ( 'future' != $status )
3521
- $this->posts[0]->post_date = current_time('mysql');
3522
- }
3523
- } elseif ( $post_status_obj->private ) {
3524
- if ( ! current_user_can($read_cap, $this->posts[0]->ID) )
3525
- $this->posts = array();
3526
- } else {
3527
- $this->posts = array();
3528
- }
3529
- }
3530
- }
3531
-
3532
- if ( $this->is_preview && $this->posts && current_user_can( $edit_cap, $this->posts[0]->ID ) ) {
3533
- /**
3534
- * Filter the single post for preview mode.
3535
- *
3536
- * @since 2.7.0
3537
- *
3538
- * @param WP_Post $post_preview The Post object.
3539
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3540
- */
3541
- $this->posts[0] = get_post( apply_filters_ref_array( 'the_preview', array( $this->posts[0], &$this ) ) );
3542
- }
3543
- }
3544
-
3545
- // Put sticky posts at the top of the posts array
3546
- $sticky_posts = get_option('sticky_posts');
3547
- if ( $this->is_home && $page <= 1 && is_array($sticky_posts) && !empty($sticky_posts) && !$q['ignore_sticky_posts'] ) {
3548
- $num_posts = count($this->posts);
3549
- $sticky_offset = 0;
3550
- // Loop over posts and relocate stickies to the front.
3551
- for ( $i = 0; $i < $num_posts; $i++ ) {
3552
- if ( in_array($this->posts[$i]->ID, $sticky_posts) ) {
3553
- $sticky_post = $this->posts[$i];
3554
- // Remove sticky from current position
3555
- array_splice($this->posts, $i, 1);
3556
- // Move to front, after other stickies
3557
- array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
3558
- // Increment the sticky offset. The next sticky will be placed at this offset.
3559
- $sticky_offset++;
3560
- // Remove post from sticky posts array
3561
- $offset = array_search($sticky_post->ID, $sticky_posts);
3562
- unset( $sticky_posts[$offset] );
3563
- }
3564
- }
3565
-
3566
- // If any posts have been excluded specifically, Ignore those that are sticky.
3567
- if ( !empty($sticky_posts) && !empty($q['post__not_in']) )
3568
- $sticky_posts = array_diff($sticky_posts, $q['post__not_in']);
3569
-
3570
- // Fetch sticky posts that weren't in the query results
3571
- if ( !empty($sticky_posts) ) {
3572
- $stickies = get_posts( array(
3573
- 'post__in' => $sticky_posts,
3574
- 'post_type' => $post_type,
3575
- 'post_status' => 'publish',
3576
- 'nopaging' => true
3577
- ) );
3578
-
3579
- foreach ( $stickies as $sticky_post ) {
3580
- array_splice( $this->posts, $sticky_offset, 0, array( $sticky_post ) );
3581
- $sticky_offset++;
3582
- }
3583
- }
3584
- }
3585
-
3586
- if ( ! $q['suppress_filters'] ) {
3587
- /**
3588
- * Filter the array of retrieved posts after they've been fetched and
3589
- * internally processed.
3590
- *
3591
- * @since 1.5.0
3592
- *
3593
- * @param array $posts The array of retrieved posts.
3594
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3595
- */
3596
- $this->posts = apply_filters_ref_array( 'the_posts', array( $this->posts, &$this ) );
3597
- }
3598
-
3599
- // Ensure that any posts added/modified via one of the filters above are
3600
- // of the type WP_Post and are filtered.
3601
- if ( $this->posts ) {
3602
- $this->post_count = count( $this->posts );
3603
-
3604
- $this->posts = array_map( 'get_post', $this->posts );
3605
-
3606
- if ( $q['cache_results'] )
3607
- update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
3608
-
3609
- $this->post = reset( $this->posts );
3610
- } else {
3611
- $this->post_count = 0;
3612
- $this->posts = array();
3613
- }
3614
-
3615
- return $this->posts;
3616
- }
3617
-
3618
- /**
3619
- * Set up the amount of found posts and the number of pages (if limit clause was used)
3620
- * for the current query.
3621
- *
3622
- * @since 3.5.0
3623
- * @access private
3624
- */
3625
- private function set_found_posts( $q, $limits ) {
3626
- global $wpdb;
3627
-
3628
- // Bail if posts is an empty array. Continue if posts is an empty string,
3629
- // null, or false to accommodate caching plugins that fill posts later.
3630
- if ( $q['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) )
3631
- return;
3632
-
3633
- if ( ! empty( $limits ) ) {
3634
- /**
3635
- * Filter the query to run for retrieving the found posts.
3636
- *
3637
- * @since 2.1.0
3638
- *
3639
- * @param string $found_posts The query to run to find the found posts.
3640
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3641
- */
3642
- $this->found_posts = $wpdb->get_var( apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) ) );
3643
- } else {
3644
- $this->found_posts = count( $this->posts );
3645
- }
3646
-
3647
- /**
3648
- * Filter the number of found posts for the query.
3649
- *
3650
- * @since 2.1.0
3651
- *
3652
- * @param int $found_posts The number of posts found.
3653
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3654
- */
3655
- $this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
3656
-
3657
- if ( ! empty( $limits ) )
3658
- $this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] );
3659
- }
3660
-
3661
- /**
3662
- * Set up the next post and iterate current post index.
3663
- *
3664
- * @since 1.5.0
3665
- * @access public
3666
- *
3667
- * @return WP_Post Next post.
3668
- */
3669
- public function next_post() {
3670
-
3671
- $this->current_post++;
3672
-
3673
- $this->post = $this->posts[$this->current_post];
3674
- return $this->post;
3675
- }
3676
-
3677
- /**
3678
- * Sets up the current post.
3679
- *
3680
- * Retrieves the next post, sets up the post, sets the 'in the loop'
3681
- * property to true.
3682
- *
3683
- * @since 1.5.0
3684
- * @access public
3685
- * @uses $post
3686
- * @uses do_action_ref_array() Calls 'loop_start' if loop has just started
3687
- */
3688
- public function the_post() {
3689
- global $post;
3690
- $this->in_the_loop = true;
3691
-
3692
- if ( $this->current_post == -1 ) // loop has just started
3693
- /**
3694
- * Fires once the loop is started.
3695
- *
3696
- * @since 2.0.0
3697
- *
3698
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3699
- */
3700
- do_action_ref_array( 'loop_start', array( &$this ) );
3701
-
3702
- $post = $this->next_post();
3703
- setup_postdata($post);
3704
- }
3705
-
3706
- /**
3707
- * Whether there are more posts available in the loop.
3708
- *
3709
- * Calls action 'loop_end', when the loop is complete.
3710
- *
3711
- * @since 1.5.0
3712
- * @access public
3713
- * @uses do_action_ref_array() Calls 'loop_end' if loop is ended
3714
- *
3715
- * @return bool True if posts are available, false if end of loop.
3716
- */
3717
- public function have_posts() {
3718
- if ( $this->current_post + 1 < $this->post_count ) {
3719
- return true;
3720
- } elseif ( $this->current_post + 1 == $this->post_count && $this->post_count > 0 ) {
3721
- /**
3722
- * Fires once the loop has ended.
3723
- *
3724
- * @since 2.0.0
3725
- *
3726
- * @param WP_Query &$this The WP_Query instance (passed by reference).
3727
- */
3728
- do_action_ref_array( 'loop_end', array( &$this ) );
3729
- // Do some cleaning up after the loop
3730
- $this->rewind_posts();
3731
- }
3732
-
3733
- $this->in_the_loop = false;
3734
- return false;
3735
- }
3736
-
3737
- /**
3738
- * Rewind the posts and reset post index.
3739
- *
3740
- * @since 1.5.0
3741
- * @access public
3742
- */
3743
- public function rewind_posts() {
3744
- $this->current_post = -1;
3745
- if ( $this->post_count > 0 ) {
3746
- $this->post = $this->posts[0];
3747
- }
3748
- }
3749
-
3750
- /**
3751
- * Iterate current comment index and return comment object.
3752
- *
3753
- * @since 2.2.0
3754
- * @access public
3755
- *
3756
- * @return object Comment object.
3757
- */
3758
- public function next_comment() {
3759
- $this->current_comment++;
3760
-
3761
- $this->comment = $this->comments[$this->current_comment];
3762
- return $this->comment;
3763
- }
3764
-
3765
- /**
3766
- * Sets up the current comment.
3767
- *
3768
- * @since 2.2.0
3769
- * @access public
3770
- * @global object $comment Current comment.
3771
- * @uses do_action() Calls 'comment_loop_start' hook when first comment is processed.
3772
- */
3773
- public function the_comment() {
3774
- global $comment;
3775
-
3776
- $comment = $this->next_comment();
3777
-
3778
- if ( $this->current_comment == 0 ) {
3779
- /**
3780
- * Fires once the comment loop is started.
3781
- *
3782
- * @since 2.2.0
3783
- */
3784
- do_action( 'comment_loop_start' );
3785
- }
3786
- }
3787
-
3788
- /**
3789
- * Whether there are more comments available.
3790
- *
3791
- * Automatically rewinds comments when finished.
3792
- *
3793
- * @since 2.2.0
3794
- * @access public
3795
- *
3796
- * @return bool True, if more comments. False, if no more posts.
3797
- */
3798
- public function have_comments() {
3799
- if ( $this->current_comment + 1 < $this->comment_count ) {
3800
- return true;
3801
- } elseif ( $this->current_comment + 1 == $this->comment_count ) {
3802
- $this->rewind_comments();
3803
- }
3804
-
3805
- return false;
3806
- }
3807
-
3808
- /**
3809
- * Rewind the comments, resets the comment index and comment to first.
3810
- *
3811
- * @since 2.2.0
3812
- * @access public
3813
- */
3814
- public function rewind_comments() {
3815
- $this->current_comment = -1;
3816
- if ( $this->comment_count > 0 ) {
3817
- $this->comment = $this->comments[0];
3818
- }
3819
- }
3820
-
3821
- /**
3822
- * Sets up the WordPress query by parsing query string.
3823
- *
3824
- * @since 1.5.0
3825
- * @access public
3826
- *
3827
- * @param string $query URL query string.
3828
- * @return array List of posts.
3829
- */
3830
- public function query( $query ) {
3831
- $this->init();
3832
- $this->query = $this->query_vars = wp_parse_args( $query );
3833
- return $this->get_posts();
3834
- }
3835
-
3836
- /**
3837
- * Retrieve queried object.
3838
- *
3839
- * If queried object is not set, then the queried object will be set from
3840
- * the category, tag, taxonomy, posts page, single post, page, or author
3841
- * query variable. After it is set up, it will be returned.
3842
- *
3843
- * @since 1.5.0
3844
- * @access public
3845
- *
3846
- * @return object
3847
- */
3848
- public function get_queried_object() {
3849
- if ( isset($this->queried_object) )
3850
- return $this->queried_object;
3851
-
3852
- $this->queried_object = null;
3853
- $this->queried_object_id = 0;
3854
-
3855
- if ( $this->is_category || $this->is_tag || $this->is_tax ) {
3856
- if ( $this->is_category ) {
3857
- if ( $this->get( 'cat' ) ) {
3858
- $term = get_term( $this->get( 'cat' ), 'category' );
3859
- } elseif ( $this->get( 'category_name' ) ) {
3860
- $term = get_term_by( 'slug', $this->get( 'category_name' ), 'category' );
3861
- }
3862
- } elseif ( $this->is_tag ) {
3863
- if ( $this->get( 'tag_id' ) ) {
3864
- $term = get_term( $this->get( 'tag_id' ), 'post_tag' );
3865
- } elseif ( $this->get( 'tag' ) ) {
3866
- $term = get_term_by( 'slug', $this->get( 'tag' ), 'post_tag' );
3867
- }
3868
- } else {
3869
- $tax_query_in_and = wp_list_filter( $this->tax_query->queries, array( 'operator' => 'NOT IN' ), 'NOT' );
3870
- $query = reset( $tax_query_in_and );
3871
-
3872
- if ( $query['terms'] ) {
3873
- if ( 'term_id' == $query['field'] ) {
3874
- $term = get_term( reset( $query['terms'] ), $query['taxonomy'] );
3875
- } else {
3876
- $term = get_term_by( $query['field'], reset( $query['terms'] ), $query['taxonomy'] );
3877
- }
3878
- }
3879
- }
3880
-
3881
- if ( ! empty( $term ) && ! is_wp_error( $term ) ) {
3882
- $this->queried_object = $term;
3883
- $this->queried_object_id = (int) $term->term_id;
3884
-
3885
- if ( $this->is_category && 'category' === $this->queried_object->taxonomy )
3886
- _make_cat_compat( $this->queried_object );
3887
- }
3888
- } elseif ( $this->is_post_type_archive ) {
3889
- $post_type = $this->get( 'post_type' );
3890
- if ( is_array( $post_type ) )
3891
- $post_type = reset( $post_type );
3892
- $this->queried_object = get_post_type_object( $post_type );
3893
- } elseif ( $this->is_posts_page ) {
3894
- $page_for_posts = get_option('page_for_posts');
3895
- $this->queried_object = get_post( $page_for_posts );
3896
- $this->queried_object_id = (int) $this->queried_object->ID;
3897
- } elseif ( $this->is_singular && ! empty( $this->post ) ) {
3898
- $this->queried_object = $this->post;
3899
- $this->queried_object_id = (int) $this->post->ID;
3900
- } elseif ( $this->is_author ) {
3901
- $this->queried_object_id = (int) $this->get('author');
3902
- $this->queried_object = get_userdata( $this->queried_object_id );
3903
- }
3904
-
3905
- return $this->queried_object;
3906
- }
3907
-
3908
- /**
3909
- * Retrieve ID of the current queried object.
3910
- *
3911
- * @since 1.5.0
3912
- * @access public
3913
- *
3914
- * @return int
3915
- */
3916
- public function get_queried_object_id() {
3917
- $this->get_queried_object();
3918
-
3919
- if ( isset($this->queried_object_id) ) {
3920
- return $this->queried_object_id;
3921
- }
3922
-
3923
- return 0;
3924
- }
3925
-
3926
- /**
3927
- * Constructor.
3928
- *
3929
- * Sets up the WordPress query, if parameter is not empty.
3930
- *
3931
- * @since 1.5.0
3932
- * @access public
3933
- *
3934
- * @param string $query URL query string.
3935
- * @return WP_Query
3936
- */
3937
- public function __construct($query = '') {
3938
- if ( ! empty($query) ) {
3939
- $this->query($query);
3940
- }
3941
- }
3942
-
3943
- /**
3944
- * Make private properties readable for backwards compatibility.
3945
- *
3946
- * @since 4.0.0
3947
- * @access public
3948
- *
3949
- * @param string $name Property to get.
3950
- * @return mixed Property.
3951
- */
3952
- public function __get( $name ) {
3953
- return $this->$name;
3954
- }
3955
-
3956
- /**
3957
- * Make private properties settable for backwards compatibility.
3958
- *
3959
- * @since 4.0.0
3960
- * @access public
3961
- *
3962
- * @param string $name Property to check if set.
3963
- * @return bool Whether the property is set.
3964
- */
3965
- public function __isset( $name ) {
3966
- return isset( $this->$name );
3967
- }
3968
-
3969
- /**
3970
- * Make private properties settable for backwards compatibility.
3971
- *
3972
- * @since 4.0.0
3973
- * @access public
3974
- *
3975
- * @param string $name Property to unset.
3976
- */
3977
- public function __unset( $name ) {
3978
- unset( $this->$name );
3979
- }
3980
-
3981
- /**
3982
- * Make private/protected methods readable for backwards compatibility.
3983
- *
3984
- * @since 4.0.0
3985
- * @access public
3986
- *
3987
- * @param callable $name Method to call.
3988
- * @param array $arguments Arguments to pass when calling.
3989
- * @return mixed|bool Return value of the callback, otherwise false.
3990
- */
3991
- public function __call( $name, $arguments ) {
3992
- return call_user_func_array( array( $this, $name ), $arguments );
3993
- }
3994
-
3995
- /**
3996
- * Is the query for an existing archive page?
3997
- *
3998
- * Month, Year, Category, Author, Post Type archive...
3999
- *
4000
- * @since 3.1.0
4001
- *
4002
- * @return bool
4003
- */
4004
- public function is_archive() {
4005
- return (bool) $this->is_archive;
4006
- }
4007
-
4008
- /**
4009
- * Is the query for an existing post type archive page?
4010
- *
4011
- * @since 3.1.0
4012
- *
4013
- * @param mixed $post_types Optional. Post type or array of posts types to check against.
4014
- * @return bool
4015
- */
4016
- public function is_post_type_archive( $post_types = '' ) {
4017
- if ( empty( $post_types ) || ! $this->is_post_type_archive )
4018
- return (bool) $this->is_post_type_archive;
4019
-
4020
- $post_type = $this->get( 'post_type' );
4021
- if ( is_array( $post_type ) )
4022
- $post_type = reset( $post_type );
4023
- $post_type_object = get_post_type_object( $post_type );
4024
-
4025
- return in_array( $post_type_object->name, (array) $post_types );
4026
- }
4027
-
4028
- /**
4029
- * Is the query for an existing attachment page?
4030
- *
4031
- * @since 3.1.0
4032
- *
4033
- * @param mixed $attachment Attachment ID, title, slug, or array of such.
4034
- * @return bool
4035
- */
4036
- public function is_attachment( $attachment = '' ) {
4037
- if ( ! $this->is_attachment ) {
4038
- return false;
4039
- }
4040
-
4041
- if ( empty( $attachment ) ) {
4042
- return true;
4043
- }
4044
-
4045
- $attachment = (array) $attachment;
4046
-
4047
- $post_obj = $this->get_queried_object();
4048
-
4049
- if ( in_array( $post_obj->ID, $attachment ) ) {
4050
- return true;
4051
- } elseif ( in_array( $post_obj->post_title, $attachment ) ) {
4052
- return true;
4053
- } elseif ( in_array( $post_obj->post_name, $attachment ) ) {
4054
- return true;
4055
- }
4056
- return false;
4057
- }
4058
-
4059
- /**
4060
- * Is the query for an existing author archive page?
4061
- *
4062
- * If the $author parameter is specified, this function will additionally
4063
- * check if the query is for one of the authors specified.
4064
- *
4065
- * @since 3.1.0
4066
- *
4067
- * @param mixed $author Optional. User ID, nickname, nicename, or array of User IDs, nicknames, and nicenames
4068
- * @return bool
4069
- */
4070
- public function is_author( $author = '' ) {
4071
- if ( !$this->is_author )
4072
- return false;
4073
-
4074
- if ( empty($author) )
4075
- return true;
4076
-
4077
- $author_obj = $this->get_queried_object();
4078
-
4079
- $author = (array) $author;
4080
-
4081
- if ( in_array( $author_obj->ID, $author ) )
4082
- return true;
4083
- elseif ( in_array( $author_obj->nickname, $author ) )
4084
- return true;
4085
- elseif ( in_array( $author_obj->user_nicename, $author ) )
4086
- return true;
4087
-
4088
- return false;
4089
- }
4090
-
4091
- /**
4092
- * Is the query for an existing category archive page?
4093
- *
4094
- * If the $category parameter is specified, this function will additionally
4095
- * check if the query is for one of the categories specified.
4096
- *
4097
- * @since 3.1.0
4098
- *
4099
- * @param mixed $category Optional. Category ID, name, slug, or array of Category IDs, names, and slugs.
4100
- * @return bool
4101
- */
4102
- public function is_category( $category = '' ) {
4103
- if ( !$this->is_category )
4104
- return false;
4105
-
4106
- if ( empty($category) )
4107
- return true;
4108
-
4109
- $cat_obj = $this->get_queried_object();
4110
-
4111
- $category = (array) $category;
4112
-
4113
- if ( in_array( $cat_obj->term_id, $category ) )
4114
- return true;
4115
- elseif ( in_array( $cat_obj->name, $category ) )
4116
- return true;
4117
- elseif ( in_array( $cat_obj->slug, $category ) )
4118
- return true;
4119
-
4120
- return false;
4121
- }
4122
-
4123
- /**
4124
- * Is the query for an existing tag archive page?
4125
- *
4126
- * If the $tag parameter is specified, this function will additionally
4127
- * check if the query is for one of the tags specified.
4128
- *
4129
- * @since 3.1.0
4130
- *
4131
- * @param mixed $tag Optional. Tag ID, name, slug, or array of Tag IDs, names, and slugs.
4132
- * @return bool
4133
- */
4134
- public function is_tag( $tag = '' ) {
4135
- if ( ! $this->is_tag )
4136
- return false;
4137
-
4138
- if ( empty( $tag ) )
4139
- return true;
4140
-
4141
- $tag_obj = $this->get_queried_object();
4142
-
4143
- $tag = (array) $tag;
4144
-
4145
- if ( in_array( $tag_obj->term_id, $tag ) )
4146
- return true;
4147
- elseif ( in_array( $tag_obj->name, $tag ) )
4148
- return true;
4149
- elseif ( in_array( $tag_obj->slug, $tag ) )
4150
- return true;
4151
-
4152
- return false;
4153
- }
4154
-
4155
- /**
4156
- * Is the query for an existing taxonomy archive page?
4157
- *
4158
- * If the $taxonomy parameter is specified, this function will additionally
4159
- * check if the query is for that specific $taxonomy.
4160
- *
4161
- * If the $term parameter is specified in addition to the $taxonomy parameter,
4162
- * this function will additionally check if the query is for one of the terms
4163
- * specified.
4164
- *
4165
- * @since 3.1.0
4166
- *
4167
- * @param mixed $taxonomy Optional. Taxonomy slug or slugs.
4168
- * @param mixed $term. Optional. Term ID, name, slug or array of Term IDs, names, and slugs.
4169
- * @return bool
4170
- */
4171
- public function is_tax( $taxonomy = '', $term = '' ) {
4172
- global $wp_taxonomies;
4173
-
4174
- if ( !$this->is_tax )
4175
- return false;
4176
-
4177
- if ( empty( $taxonomy ) )
4178
- return true;
4179
-
4180
- $queried_object = $this->get_queried_object();
4181
- $tax_array = array_intersect( array_keys( $wp_taxonomies ), (array) $taxonomy );
4182
- $term_array = (array) $term;
4183
-
4184
- // Check that the taxonomy matches.
4185
- if ( ! ( isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array ) ) )
4186
- return false;
4187
-
4188
- // Only a Taxonomy provided.
4189
- if ( empty( $term ) )
4190
- return true;
4191
-
4192
- return isset( $queried_object->term_id ) &&
4193
- count( array_intersect(
4194
- array( $queried_object->term_id, $queried_object->name, $queried_object->slug ),
4195
- $term_array
4196
- ) );
4197
- }
4198
-
4199
- /**
4200
- * Whether the current URL is within the comments popup window.
4201
- *
4202
- * @since 3.1.0
4203
- *
4204
- * @return bool
4205
- */
4206
- public function is_comments_popup() {
4207
- return (bool) $this->is_comments_popup;
4208
- }
4209
-
4210
- /**
4211
- * Is the query for an existing date archive?
4212
- *
4213
- * @since 3.1.0
4214
- *
4215
- * @return bool
4216
- */
4217
- public function is_date() {
4218
- return (bool) $this->is_date;
4219
- }
4220
-
4221
- /**
4222
- * Is the query for an existing day archive?
4223
- *
4224
- * @since 3.1.0
4225
- *
4226
- * @return bool
4227
- */
4228
- public function is_day() {
4229
- return (bool) $this->is_day;
4230
- }
4231
-
4232
- /**
4233
- * Is the query for a feed?
4234
- *
4235
- * @since 3.1.0
4236
- *
4237
- * @param string|array $feeds Optional feed types to check.
4238
- * @return bool
4239
- */
4240
- public function is_feed( $feeds = '' ) {
4241
- if ( empty( $feeds ) || ! $this->is_feed )
4242
- return (bool) $this->is_feed;
4243
- $qv = $this->get( 'feed' );
4244
- if ( 'feed' == $qv )
4245
- $qv = get_default_feed();
4246
- return in_array( $qv, (array) $feeds );
4247
- }
4248
-
4249
- /**
4250
- * Is the query for a comments feed?
4251
- *
4252
- * @since 3.1.0
4253
- *
4254
- * @return bool
4255
- */
4256
- public function is_comment_feed() {
4257
- return (bool) $this->is_comment_feed;
4258
- }
4259
-
4260
- /**
4261
- * Is the query for the front page of the site?
4262
- *
4263
- * This is for what is displayed at your site's main URL.
4264
- *
4265
- * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_on_front'.
4266
- *
4267
- * If you set a static page for the front page of your site, this function will return
4268
- * true when viewing that page.
4269
- *
4270
- * Otherwise the same as @see WP_Query::is_home()
4271
- *
4272
- * @since 3.1.0
4273
- * @uses is_home()
4274
- * @uses get_option()
4275
- *
4276
- * @return bool True, if front of site.
4277
- */
4278
- public function is_front_page() {
4279
- // most likely case
4280
- if ( 'posts' == get_option( 'show_on_front') && $this->is_home() )
4281
- return true;
4282
- elseif ( 'page' == get_option( 'show_on_front') && get_option( 'page_on_front' ) && $this->is_page( get_option( 'page_on_front' ) ) )
4283
- return true;
4284
- else
4285
- return false;
4286
- }
4287
-
4288
- /**
4289
- * Is the query for the blog homepage?
4290
- *
4291
- * This is the page which shows the time based blog content of your site.
4292
- *
4293
- * Depends on the site's "Front page displays" Reading Settings 'show_on_front' and 'page_for_posts'.
4294
- *
4295
- * If you set a static page for the front page of your site, this function will return
4296
- * true only on the page you set as the "Posts page".
4297
- *
4298
- * @see WP_Query::is_front_page()
4299
- *
4300
- * @since 3.1.0
4301
- *
4302
- * @return bool True if blog view homepage.
4303
- */
4304
- public function is_home() {
4305
- return (bool) $this->is_home;
4306
- }
4307
-
4308
- /**
4309
- * Is the query for an existing month archive?
4310
- *
4311
- * @since 3.1.0
4312
- *
4313
- * @return bool
4314
- */
4315
- public function is_month() {
4316
- return (bool) $this->is_month;
4317
- }
4318
-
4319
- /**
4320
- * Is the query for an existing single page?
4321
- *
4322
- * If the $page parameter is specified, this function will additionally
4323
- * check if the query is for one of the pages specified.
4324
- *
4325
- * @see WP_Query::is_single()
4326
- * @see WP_Query::is_singular()
4327
- *
4328
- * @since 3.1.0
4329
- *
4330
- * @param mixed $page Page ID, title, slug, path, or array of such.
4331
- * @return bool
4332
- */
4333
- public function is_page( $page = '' ) {
4334
- if ( !$this->is_page )
4335
- return false;
4336
-
4337
- if ( empty( $page ) )
4338
- return true;
4339
-
4340
- $page_obj = $this->get_queried_object();
4341
-
4342
- $page = (array) $page;
4343
-
4344
- if ( in_array( $page_obj->ID, $page ) ) {
4345
- return true;
4346
- } elseif ( in_array( $page_obj->post_title, $page ) ) {
4347
- return true;
4348
- } else if ( in_array( $page_obj->post_name, $page ) ) {
4349
- return true;
4350
- } else {
4351
- foreach ( $page as $pagepath ) {
4352
- if ( ! strpos( $pagepath, '/' ) ) {
4353
- continue;
4354
- }
4355
- $pagepath_obj = get_page_by_path( $pagepath );
4356
-
4357
- if ( $pagepath_obj && ( $pagepath_obj->ID == $page_obj->ID ) ) {
4358
- return true;
4359
- }
4360
- }
4361
- }
4362
-
4363
- return false;
4364
- }
4365
-
4366
- /**
4367
- * Is the query for paged result and not for the first page?
4368
- *
4369
- * @since 3.1.0
4370
- *
4371
- * @return bool
4372
- */
4373
- public function is_paged() {
4374
- return (bool) $this->is_paged;
4375
- }
4376
-
4377
- /**
4378
- * Is the query for a post or page preview?
4379
- *
4380
- * @since 3.1.0
4381
- *
4382
- * @return bool
4383
- */
4384
- public function is_preview() {
4385
- return (bool) $this->is_preview;
4386
- }
4387
-
4388
- /**
4389
- * Is the query for the robots file?
4390
- *
4391
- * @since 3.1.0
4392
- *
4393
- * @return bool
4394
- */
4395
- public function is_robots() {
4396
- return (bool) $this->is_robots;
4397
- }
4398
-
4399
- /**
4400
- * Is the query for a search?
4401
- *
4402
- * @since 3.1.0
4403
- *
4404
- * @return bool
4405
- */
4406
- public function is_search() {
4407
- return (bool) $this->is_search;
4408
- }
4409
-
4410
- /**
4411
- * Is the query for an existing single post?
4412
- *
4413
- * Works for any post type, except attachments and pages
4414
- *
4415
- * If the $post parameter is specified, this function will additionally
4416
- * check if the query is for one of the Posts specified.
4417
- *
4418
- * @see WP_Query::is_page()
4419
- * @see WP_Query::is_singular()
4420
- *
4421
- * @since 3.1.0
4422
- *
4423
- * @param mixed $post Post ID, title, slug, path, or array of such.
4424
- * @return bool
4425
- */
4426
- public function is_single( $post = '' ) {
4427
- if ( !$this->is_single )
4428
- return false;
4429
-
4430
- if ( empty($post) )
4431
- return true;
4432
-
4433
- $post_obj = $this->get_queried_object();
4434
-
4435
- $post = (array) $post;
4436
-
4437
- if ( in_array( $post_obj->ID, $post ) ) {
4438
- return true;
4439
- } elseif ( in_array( $post_obj->post_title, $post ) ) {
4440
- return true;
4441
- } elseif ( in_array( $post_obj->post_name, $post ) ) {
4442
- return true;
4443
- } else {
4444
- foreach ( $post as $postpath ) {
4445
- if ( ! strpos( $postpath, '/' ) ) {
4446
- continue;
4447
- }
4448
- $postpath_obj = get_page_by_path( $postpath, OBJECT, $post_obj->post_type );
4449
-
4450
- if ( $postpath_obj && ( $postpath_obj->ID == $post_obj->ID ) ) {
4451
- return true;
4452
- }
4453
- }
4454
- }
4455
- return false;
4456
- }
4457
-
4458
- /**
4459
- * Is the query for an existing single post of any post type (post, attachment, page, ... )?
4460
- *
4461
- * If the $post_types parameter is specified, this function will additionally
4462
- * check if the query is for one of the Posts Types specified.
4463
- *
4464
- * @see WP_Query::is_page()
4465
- * @see WP_Query::is_single()
4466
- *
4467
- * @since 3.1.0
4468
- *
4469
- * @param mixed $post_types Optional. Post Type or array of Post Types
4470
- * @return bool
4471
- */
4472
- public function is_singular( $post_types = '' ) {
4473
- if ( empty( $post_types ) || !$this->is_singular )
4474
- return (bool) $this->is_singular;
4475
-
4476
- $post_obj = $this->get_queried_object();
4477
-
4478
- return in_array( $post_obj->post_type, (array) $post_types );
4479
- }
4480
-
4481
- /**
4482
- * Is the query for a specific time?
4483
- *
4484
- * @since 3.1.0
4485
- *
4486
- * @return bool
4487
- */
4488
- public function is_time() {
4489
- return (bool) $this->is_time;
4490
- }
4491
-
4492
- /**
4493
- * Is the query for a trackback endpoint call?
4494
- *
4495
- * @since 3.1.0
4496
- *
4497
- * @return bool
4498
- */
4499
- public function is_trackback() {
4500
- return (bool) $this->is_trackback;
4501
- }
4502
-
4503
- /**
4504
- * Is the query for an existing year archive?
4505
- *
4506
- * @since 3.1.0
4507
- *
4508
- * @return bool
4509
- */
4510
- public function is_year() {
4511
- return (bool) $this->is_year;
4512
- }
4513
-
4514
- /**
4515
- * Is the query a 404 (returns no results)?
4516
- *
4517
- * @since 3.1.0
4518
- *
4519
- * @return bool
4520
- */
4521
- public function is_404() {
4522
- return (bool) $this->is_404;
4523
- }
4524
-
4525
- /**
4526
- * Is the query the main query?
4527
- *
4528
- * @since 3.3.0
4529
- *
4530
- * @return bool
4531
- */
4532
- public function is_main_query() {
4533
- global $wp_the_query;
4534
- return $wp_the_query === $this;
4535
- }
4536
-
4537
- /**
4538
- * After looping through a nested query, this function
4539
- * restores the $post global to the current post in this query.
4540
- *
4541
- * @since 3.7.0
4542
- *
4543
- * @return bool
4544
- */
4545
- public function reset_postdata() {
4546
- if ( ! empty( $this->post ) ) {
4547
- $GLOBALS['post'] = $this->post;
4548
- setup_postdata( $this->post );
4549
- }
4550
- }
4551
- }
4552
-
4553
- /**
4554
- * Redirect old slugs to the correct permalink.
4555
- *
4556
- * Attempts to find the current slug from the past slugs.
4557
- *
4558
- * @since 2.1.0
4559
- * @uses $wp_query
4560
- * @uses $wpdb
4561
- *
4562
- * @return null If no link is found, null is returned.
4563
- */
4564
- function wp_old_slug_redirect() {
4565
- global $wp_query;
4566
- if ( is_404() && '' != $wp_query->query_vars['name'] ) :
4567
- global $wpdb;
4568
-
4569
- // Guess the current post_type based on the query vars.
4570
- if ( get_query_var('post_type') )
4571
- $post_type = get_query_var('post_type');
4572
- elseif ( !empty($wp_query->query_vars['pagename']) )
4573
- $post_type = 'page';
4574
- else
4575
- $post_type = 'post';
4576
-
4577
- if ( is_array( $post_type ) ) {
4578
- if ( count( $post_type ) > 1 )
4579
- return;
4580
- $post_type = array_shift( $post_type );
4581
- }
4582
-
4583
- // Do not attempt redirect for hierarchical post types
4584
- if ( is_post_type_hierarchical( $post_type ) )
4585
- return;
4586
-
4587
- $query = $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta, $wpdb->posts WHERE ID = post_id AND post_type = %s AND meta_key = '_wp_old_slug' AND meta_value = %s", $post_type, $wp_query->query_vars['name']);
4588
-
4589
- // if year, monthnum, or day have been specified, make our query more precise
4590
- // just in case there are multiple identical _wp_old_slug values
4591
- if ( '' != $wp_query->query_vars['year'] )
4592
- $query .= $wpdb->prepare(" AND YEAR(post_date) = %d", $wp_query->query_vars['year']);
4593
- if ( '' != $wp_query->query_vars['monthnum'] )
4594
- $query .= $wpdb->prepare(" AND MONTH(post_date) = %d", $wp_query->query_vars['monthnum']);
4595
- if ( '' != $wp_query->query_vars['day'] )
4596
- $query .= $wpdb->prepare(" AND DAYOFMONTH(post_date) = %d", $wp_query->query_vars['day']);
4597
-
4598
- $id = (int) $wpdb->get_var($query);
4599
-
4600
- if ( ! $id )
4601
- return;
4602
-
4603
- $link = get_permalink($id);
4604
-
4605
- if ( !$link )
4606
- return;
4607
-
4608
- wp_redirect( $link, 301 ); // Permanent redirect
4609
- exit;
4610
- endif;
4611
- }
4612
-
4613
- /**
4614
- * Set up global post data.
4615
- *
4616
- * @since 1.5.0
4617
- *
4618
- * @param object $post Post data.
4619
- * @uses do_action_ref_array() Calls 'the_post'
4620
- * @return bool True when finished.
4621
- */
4622
- function setup_postdata( $post ) {
4623
- global $id, $authordata, $currentday, $currentmonth, $page, $pages, $multipage, $more, $numpages;
4624
-
4625
- $id = (int) $post->ID;
4626
-
4627
- $authordata = get_userdata($post->post_author);
4628
-
4629
- $currentday = mysql2date('d.m.y', $post->post_date, false);
4630
- $currentmonth = mysql2date('m', $post->post_date, false);
4631
- $numpages = 1;
4632
- $multipage = 0;
4633
- $page = get_query_var('page');
4634
- if ( ! $page )
4635
- $page = 1;
4636
- if ( is_single() || is_page() || is_feed() )
4637
- $more = 1;
4638
- $content = $post->post_content;
4639
- if ( false !== strpos( $content, '<!--nextpage-->' ) ) {
4640
- if ( $page > 1 )
4641
- $more = 1;
4642
- $content = str_replace( "\n<!--nextpage-->\n", '<!--nextpage-->', $content );
4643
- $content = str_replace( "\n<!--nextpage-->", '<!--nextpage-->', $content );
4644
- $content = str_replace( "<!--nextpage-->\n", '<!--nextpage-->', $content );
4645
- // Ignore nextpage at the beginning of the content.
4646
- if ( 0 === strpos( $content, '<!--nextpage-->' ) )
4647
- $content = substr( $content, 15 );
4648
- $pages = explode('<!--nextpage-->', $content);
4649
- $numpages = count($pages);
4650
- if ( $numpages > 1 )
4651
- $multipage = 1;
4652
- } else {
4653
- $pages = array( $post->post_content );
4654
- }
4655
-
4656
- /**
4657
- * Fires once the post data has been setup.
4658
- *
4659
- * @since 2.8.0
4660
- *
4661
- * @param WP_Post &$post The Post object (passed by reference).
4662
- */
4663
- do_action_ref_array( 'the_post', array( &$post ) );
4664
-
4665
- return true;
4666
- }