content.php 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583
  1. <?php
  2. /**
  3. * Post meta data fields.
  4. *
  5. * @package Pen
  6. */
  7. if ( ! defined( 'ABSPATH' ) ) {
  8. exit;
  9. }
  10. if ( ! function_exists( 'pen_post_classes' ) ) {
  11. /**
  12. * Generates class names for posts.
  13. *
  14. * @param array $classes List of class names.
  15. *
  16. * @since Pen 1.0.0
  17. * @return string
  18. */
  19. function pen_post_classes( $classes = array() ) {
  20. $post_id = get_the_ID();
  21. if ( is_sticky() ) {
  22. $classes[] = 'sticky';
  23. }
  24. if ( ! is_singular() ) {
  25. if ( 'masonry' !== pen_list_type() ) {
  26. $thumbnail_rotate = get_post_meta( $post_id, 'pen_list_thumbnail_rotate_override', true );
  27. if ( ! $thumbnail_rotate || 'default' === $thumbnail_rotate ) {
  28. $thumbnail_rotate = pen_option_get( 'list_thumbnail_rotate' );
  29. }
  30. if ( $thumbnail_rotate && 'no' !== $thumbnail_rotate ) {
  31. $classes[] = 'pen_list_thumbnail_rotate';
  32. } else {
  33. $classes[] = 'pen_list_thumbnail_rotate_not';
  34. }
  35. $thumbnail_frame = get_post_meta( $post_id, 'pen_list_thumbnail_frame_override', true );
  36. if ( ! $thumbnail_frame || 'default' === $thumbnail_frame ) {
  37. $thumbnail_frame = pen_option_get( 'list_thumbnail_frame' );
  38. }
  39. if ( $thumbnail_frame && 'no' !== $thumbnail_frame ) {
  40. $classes[] = 'pen_list_thumbnail_frame';
  41. } else {
  42. $classes[] = 'pen_list_thumbnail_frame_not';
  43. }
  44. $thumbnail_frame_color = get_post_meta( $post_id, 'pen_color_list_thumbnail_frame_override', true );
  45. if ( ! $thumbnail_frame_color || 'default' === $thumbnail_frame_color ) {
  46. $thumbnail_frame_color = pen_option_get( 'color_list_thumbnail_frame' );
  47. }
  48. if ( '#000000' === $thumbnail_frame_color ) {
  49. $classes[] = 'pen_list_thumbnail_frame_dark';
  50. } else {
  51. $classes[] = 'pen_list_thumbnail_frame_light';
  52. }
  53. $thumbnail_alignment = get_post_meta( $post_id, 'pen_list_thumbnail_alignment_override', true );
  54. if ( ! $thumbnail_alignment || 'default' === $thumbnail_alignment ) {
  55. $thumbnail_alignment = pen_option_get( 'list_thumbnail_alignment' );
  56. }
  57. $classes[] = 'pen_list_thumbnail_' . $thumbnail_alignment;
  58. }
  59. $options_list = array(
  60. 'list_header_display' => 'list_header_hide',
  61. 'list_title_display' => 'list_title_hide',
  62. 'list_author_display' => 'list_author_hide',
  63. 'list_date_display' => 'list_date_hide',
  64. 'list_category_display' => 'list_category_hide',
  65. 'list_thumbnail_display' => 'list_thumbnail_hide',
  66. 'list_summary_display' => 'list_summary_hide',
  67. 'list_footer_display' => 'list_footer_hide',
  68. 'list_tags_display' => 'list_tags_hide',
  69. 'list_button_comment_display' => 'list_button_comment_hide',
  70. 'list_button_edit_display' => 'list_button_edit_hide',
  71. );
  72. foreach ( $options_list as $option => $class ) {
  73. $value = get_post_meta( $post_id, 'pen_' . $option . '_override', true );
  74. if ( $value && 'default' !== $value ) {
  75. $classes[] = 'pen_' . $class;
  76. }
  77. }
  78. $animation_reveal = get_post_meta( $post_id, 'pen_list_animation_reveal_override', true );
  79. if ( ! $animation_reveal || 'default' === $animation_reveal ) {
  80. $animation_reveal = pen_option_get( 'list_animation_reveal' );
  81. }
  82. if ( $animation_reveal ) {
  83. $classes[] = 'pen_custom_animation_' . $animation_reveal;
  84. }
  85. $header_alignment = get_post_meta( $post_id, 'pen_list_post_header_alignment_override', true );
  86. if ( ! $header_alignment || 'default' === $header_alignment ) {
  87. $header_alignment = pen_option_get( 'list_post_header_alignment' );
  88. }
  89. if ( $header_alignment && 'no' !== $header_alignment ) {
  90. $classes[] = 'pen_list_header_center';
  91. }
  92. $title_alignment = get_post_meta( $post_id, 'pen_list_title_alignment_override', true );
  93. if ( ! $title_alignment || 'default' === $title_alignment ) {
  94. $title_alignment = pen_option_get( 'list_title_alignment' );
  95. }
  96. if ( $title_alignment && 'no' !== $title_alignment ) {
  97. $classes[] = 'pen_list_title_center';
  98. }
  99. $thumbnail_style = get_post_meta( $post_id, 'pen_list_masonry_thumbnail_style_override', true );
  100. if ( false === $thumbnail_style || empty( $thumbnail_style ) || 'default' === $thumbnail_style ) {
  101. $thumbnail_style = pen_option_get( 'list_masonry_thumbnail_style' );
  102. }
  103. $classes[] = 'pen_thumbnail_style_' . $thumbnail_style;
  104. }
  105. return post_class( $classes );
  106. }
  107. }
  108. if ( ! function_exists( 'pen_post_excerpt' ) && ! is_admin() ) {
  109. /**
  110. * Tweaks the automatically generated post excerpt.
  111. *
  112. * @param string $more Default 'more' string.
  113. *
  114. * @since Pen 1.0.0
  115. * @return string
  116. */
  117. function pen_post_excerpt( $more ) {
  118. $link = sprintf(
  119. '<a href="%1$s" class="more-link pen_button">%2$s</a>',
  120. esc_url( get_permalink( get_the_ID() ) ),
  121. sprintf(
  122. /* Translators: %s: Name of current post */
  123. __( 'Continue reading %s', 'pen' ),
  124. sprintf(
  125. '<span class="screen-reader-text">%1$s</span>',
  126. get_the_title( get_the_ID() )
  127. )
  128. )
  129. );
  130. return ' &hellip;<br>' . $link;
  131. }
  132. add_filter( 'excerpt_more', 'pen_post_excerpt' );
  133. }
  134. if ( ! function_exists( 'pen_post_sticky' ) ) {
  135. /**
  136. * Sends sticky posts to the top of the lists.
  137. *
  138. * @param WP_Posts $posts An instance of WP_Post.
  139. *
  140. * @since Pen 1.0.0
  141. */
  142. function pen_post_sticky( $posts ) {
  143. $is_sticky = array();
  144. foreach ( $posts as $key => $post ) {
  145. if ( is_sticky( $post->ID ) ) {
  146. $is_sticky[] = $post;
  147. unset( $posts[ $key ] );
  148. }
  149. }
  150. return array_merge( $is_sticky, $posts );
  151. }
  152. add_filter( 'the_posts', 'pen_post_sticky' );
  153. }
  154. if ( ! function_exists( 'pen_post_meta' ) ) {
  155. /**
  156. * Custom post meta data fields.
  157. *
  158. * @param object $post An instance of the $post.
  159. *
  160. * @since Pen 1.0.0
  161. * @return void
  162. */
  163. function pen_post_meta( $post ) {
  164. $post_type = get_post_type();
  165. ob_start( 'pen_compress_html' );
  166. ?>
  167. <div id="pen_post_meta_hint">
  168. <?php esc_html_e( 'If you switch to another theme these settings will be no longer used. The rest of the settings that are here are either parts of the WordPress core or added via plugins and they will be available with or without this theme.', 'pen' ); ?>
  169. </div>
  170. <div id="pen_post_meta">
  171. <p>
  172. <?php
  173. esc_html_e( 'The following options would only apply to this post. If you want to apply them to all your posts you should go to Appearance &rarr; Customize &rarr; Content.', 'pen' );
  174. ?>
  175. </p>
  176. <div class="pen_post_meta_options pen_post_meta_full postbox">
  177. <h3>
  178. <?php
  179. esc_html_e( 'Full Content', 'pen' );
  180. ?>
  181. </h3>
  182. <div class="pen_post_meta_container">
  183. <fieldset>
  184. <legend>
  185. <?php
  186. esc_html_e( 'Featured image', 'pen' );
  187. ?>
  188. </legend>
  189. <?php
  190. $setting_id = 'background_image_content_title_dynamic';
  191. $label = __( 'Use as title background', 'pen' );
  192. if ( pen_option_get( $setting_id ) ) {
  193. $default = __( 'Yes', 'pen' );
  194. } else {
  195. $default = __( 'No', 'pen' );
  196. }
  197. $choices = array(
  198. 'default' => sprintf(
  199. '%s (%s)',
  200. esc_html__( 'Default', 'pen' ),
  201. esc_html( $default )
  202. ),
  203. 'yes' => __( 'Yes', 'pen' ),
  204. 'no' => __( 'No', 'pen' ),
  205. );
  206. pen_post_meta_select( $post->ID, 'content_' . $setting_id, $choices, $default, $label );
  207. $setting_id = 'content_thumbnail_display';
  208. $label = __( 'Display featured image', 'pen' );
  209. if ( pen_option_get( $setting_id ) ) {
  210. $default = __( 'Yes', 'pen' );
  211. } else {
  212. $default = __( 'No', 'pen' );
  213. }
  214. $choices = array(
  215. 'default' => sprintf(
  216. '%s (%s)',
  217. esc_html__( 'Default', 'pen' ),
  218. esc_html( $default )
  219. ),
  220. 'yes' => __( 'Yes', 'pen' ),
  221. 'no' => __( 'No', 'pen' ),
  222. );
  223. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  224. $setting_id = 'content_thumbnail_resize';
  225. $label = __( 'Featured image size', 'pen' );
  226. $default = ucfirst( pen_option_get( $setting_id ) );
  227. $thumbnail_sizes = array(
  228. 'default' => sprintf(
  229. '%s (%s)',
  230. esc_html__( 'Default', 'pen' ),
  231. esc_html( $default )
  232. ),
  233. );
  234. /* phpcs:disable */
  235. foreach ( get_intermediate_image_sizes() as $size ) {
  236. $thumbnail_sizes[ $size ] = ucfirst( $size );
  237. }
  238. /* phpcs:enable */
  239. pen_post_meta_select( $post->ID, $setting_id, $thumbnail_sizes, $default, $label );
  240. $setting_id = 'content_thumbnail_rotate';
  241. $label = __( 'Rotate', 'pen' );
  242. if ( pen_option_get( $setting_id ) ) {
  243. $default = __( 'Yes', 'pen' );
  244. } else {
  245. $default = __( 'No', 'pen' );
  246. }
  247. $choices = array(
  248. 'default' => sprintf(
  249. '%s (%s)',
  250. esc_html__( 'Default', 'pen' ),
  251. esc_html( $default )
  252. ),
  253. 'yes' => __( 'Yes', 'pen' ),
  254. 'no' => __( 'No', 'pen' ),
  255. );
  256. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  257. $setting_id = 'content_thumbnail_alignment';
  258. $label = __( 'Alignment', 'pen' );
  259. $default = ucfirst( pen_option_get( $setting_id ) );
  260. $choices = array(
  261. 'default' => sprintf(
  262. '%s (%s)',
  263. esc_html__( 'Default', 'pen' ),
  264. esc_html( $default )
  265. ),
  266. 'left' => __( 'Left', 'pen' ),
  267. 'center' => __( 'Center', 'pen' ),
  268. 'right' => __( 'Right', 'pen' ),
  269. );
  270. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  271. $setting_id = 'content_thumbnail_frame';
  272. $label = __( 'Add frame', 'pen' );
  273. if ( pen_option_get( $setting_id ) ) {
  274. $default = __( 'Yes', 'pen' );
  275. } else {
  276. $default = __( 'No', 'pen' );
  277. }
  278. $choices = array(
  279. 'default' => sprintf(
  280. '%s (%s)',
  281. esc_html__( 'Default', 'pen' ),
  282. esc_html( $default )
  283. ),
  284. 'yes' => __( 'Yes', 'pen' ),
  285. 'no' => __( 'No', 'pen' ),
  286. );
  287. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  288. $setting_id = 'color_content_thumbnail_frame';
  289. $label = __( 'Frame color', 'pen' );
  290. if ( '#000000' === pen_option_get( $setting_id ) ) {
  291. $default = __( 'Dark', 'pen' );
  292. } else {
  293. $default = __( 'Light', 'pen' );
  294. }
  295. $choices = array(
  296. 'default' => sprintf(
  297. '%s (%s)',
  298. esc_html__( 'Default', 'pen' ),
  299. esc_html( $default )
  300. ),
  301. '#000000' => __( 'Dark', 'pen' ),
  302. '#ffffff' => __( 'Light', 'pen' ),
  303. );
  304. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  305. ?>
  306. </fieldset>
  307. <fieldset>
  308. <legend>
  309. <?php
  310. esc_html_e( 'Layout', 'pen' );
  311. ?>
  312. </legend>
  313. <?php
  314. $setting_id = 'site_width';
  315. $label = __( 'Site layout', 'pen' );
  316. $default = pen_option_get( $setting_id );
  317. if ( 'default' === $default || 'standard' === $default ) {
  318. $default = 'standard';
  319. }
  320. $default = ucfirst( $default );
  321. $choices = array(
  322. 'default' => sprintf(
  323. '%s (%s)',
  324. esc_html__( 'Default', 'pen' ),
  325. esc_html( $default )
  326. ),
  327. 'standard' => __( 'Standard', 'pen' ),
  328. 'wide' => __( 'Wide', 'pen' ),
  329. 'boxed' => __( 'Boxed', 'pen' ),
  330. );
  331. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  332. $setting_id = 'content_header_alignment';
  333. $label = __( 'Center-align post header', 'pen' );
  334. if ( pen_option_get( $setting_id ) ) {
  335. $default = __( 'Yes', 'pen' );
  336. } else {
  337. $default = __( 'No', 'pen' );
  338. }
  339. $choices = array(
  340. 'default' => sprintf(
  341. '%s (%s)',
  342. esc_html__( 'Default', 'pen' ),
  343. esc_html( $default )
  344. ),
  345. 'yes' => __( 'Yes', 'pen' ),
  346. 'no' => __( 'No', 'pen' ),
  347. );
  348. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  349. $setting_id = 'content_title_alignment';
  350. $label = __( 'Center-align post title', 'pen' );
  351. if ( pen_option_get( $setting_id ) ) {
  352. $default = __( 'Yes', 'pen' );
  353. } else {
  354. $default = __( 'No', 'pen' );
  355. }
  356. $choices = array(
  357. 'default' => sprintf(
  358. '%s (%s)',
  359. esc_html__( 'Default', 'pen' ),
  360. esc_html( $default )
  361. ),
  362. 'yes' => __( 'Yes', 'pen' ),
  363. 'no' => __( 'No', 'pen' ),
  364. );
  365. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  366. ?>
  367. </fieldset>
  368. <fieldset>
  369. <legend>
  370. <?php
  371. esc_html_e( 'Animation', 'pen' );
  372. ?>
  373. </legend>
  374. <?php
  375. $setting_id = 'content_animation_reveal';
  376. $label = __( 'Content area', 'pen' );
  377. $default = ucfirst( pen_option_get( $setting_id ) );
  378. $animations = array(
  379. 'default' => sprintf(
  380. '%s (%s)',
  381. esc_html__( 'Default', 'pen' ),
  382. esc_html( $default )
  383. ),
  384. );
  385. $animations = array_merge( $animations, pen_animations() );
  386. pen_post_meta_select( $post->ID, $setting_id, $animations, $default, $label );
  387. $setting_id = 'content_thumbnail_animation_reveal';
  388. $label = __( 'Featured image', 'pen' );
  389. $default = ucfirst( pen_option_get( $setting_id ) );
  390. $animations = array(
  391. 'default' => sprintf(
  392. '%s (%s)',
  393. esc_html__( 'Default', 'pen' ),
  394. esc_html( $default )
  395. ),
  396. );
  397. $animations = array_merge( $animations, pen_animations() );
  398. pen_post_meta_select( $post->ID, $setting_id, $animations, $default, $label );
  399. ?>
  400. </fieldset>
  401. <fieldset>
  402. <legend>
  403. <?php
  404. esc_html_e( 'Visibility', 'pen' );
  405. ?>
  406. </legend>
  407. <?php
  408. $setting_id = 'content_header_display';
  409. $label = __( 'Display post header', 'pen' );
  410. if ( pen_option_get( $setting_id ) ) {
  411. $default = __( 'Yes', 'pen' );
  412. } else {
  413. $default = __( 'No', 'pen' );
  414. }
  415. $choices = array(
  416. 'default' => sprintf(
  417. '%s (%s)',
  418. esc_html__( 'Default', 'pen' ),
  419. esc_html( $default )
  420. ),
  421. 'yes' => __( 'Yes', 'pen' ),
  422. 'no' => __( 'No', 'pen' ),
  423. );
  424. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  425. $setting_id = 'content_title_display';
  426. $label = __( 'Display post title', 'pen' );
  427. if ( pen_option_get( $setting_id ) ) {
  428. $default = __( 'Yes', 'pen' );
  429. } else {
  430. $default = __( 'No', 'pen' );
  431. }
  432. $choices = array(
  433. 'default' => sprintf(
  434. '%s (%s)',
  435. esc_html__( 'Default', 'pen' ),
  436. esc_html( $default )
  437. ),
  438. 'yes' => __( 'Yes', 'pen' ),
  439. 'no' => __( 'No', 'pen' ),
  440. );
  441. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  442. if ( 'post' === $post_type ) {
  443. $setting_id = 'content_author_display';
  444. $label = __( 'Display author link', 'pen' );
  445. if ( pen_option_get( $setting_id ) ) {
  446. $default = __( 'Yes', 'pen' );
  447. } else {
  448. $default = __( 'No', 'pen' );
  449. }
  450. $choices = array(
  451. 'default' => sprintf(
  452. '%s (%s)',
  453. esc_html__( 'Default', 'pen' ),
  454. esc_html( $default )
  455. ),
  456. 'yes' => __( 'Yes', 'pen' ),
  457. 'no' => __( 'No', 'pen' ),
  458. );
  459. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  460. $setting_id = 'content_date_display';
  461. $label = __( 'Display post date', 'pen' );
  462. if ( pen_option_get( $setting_id ) ) {
  463. $default = __( 'Yes', 'pen' );
  464. } else {
  465. $default = __( 'No', 'pen' );
  466. }
  467. $choices = array(
  468. 'default' => sprintf(
  469. '%s (%s)',
  470. esc_html__( 'Default', 'pen' ),
  471. esc_html( $default )
  472. ),
  473. 'yes' => __( 'Yes', 'pen' ),
  474. 'no' => __( 'No', 'pen' ),
  475. );
  476. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  477. $setting_id = 'content_category_display';
  478. $label = __( 'Display category links', 'pen' );
  479. if ( pen_option_get( $setting_id ) ) {
  480. $default = __( 'Yes', 'pen' );
  481. } else {
  482. $default = __( 'No', 'pen' );
  483. }
  484. $choices = array(
  485. 'default' => sprintf(
  486. '%s (%s)',
  487. esc_html__( 'Default', 'pen' ),
  488. esc_html( $default )
  489. ),
  490. 'yes' => __( 'Yes', 'pen' ),
  491. 'no' => __( 'No', 'pen' ),
  492. );
  493. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  494. $setting_id = 'content_profile_display';
  495. $label = __( 'Display author profile', 'pen' );
  496. if ( pen_option_get( $setting_id ) ) {
  497. $default = __( 'Yes', 'pen' );
  498. } else {
  499. $default = __( 'No', 'pen' );
  500. }
  501. $choices = array(
  502. 'default' => sprintf(
  503. '%s (%s)',
  504. esc_html__( 'Default', 'pen' ),
  505. esc_html( $default )
  506. ),
  507. 'yes' => __( 'Yes', 'pen' ),
  508. 'no' => __( 'No', 'pen' ),
  509. );
  510. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  511. $setting_id = 'content_tags_display';
  512. $label = __( 'Display post tags', 'pen' );
  513. if ( pen_option_get( $setting_id ) ) {
  514. $default = __( 'Yes', 'pen' );
  515. } else {
  516. $default = __( 'No', 'pen' );
  517. }
  518. $choices = array(
  519. 'default' => sprintf(
  520. '%s (%s)',
  521. esc_html__( 'Default', 'pen' ),
  522. esc_html( $default )
  523. ),
  524. 'yes' => __( 'Yes', 'pen' ),
  525. 'no' => __( 'No', 'pen' ),
  526. );
  527. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  528. }
  529. ?>
  530. <?php
  531. $setting_id = 'content_share_display';
  532. $label = __( 'Display share buttons', 'pen' );
  533. if ( pen_option_get( $setting_id ) ) {
  534. $default = __( 'Yes', 'pen' );
  535. } else {
  536. $default = __( 'No', 'pen' );
  537. }
  538. $choices = array(
  539. 'default' => sprintf(
  540. '%s (%s)',
  541. esc_html__( 'Default', 'pen' ),
  542. esc_html( $default )
  543. ),
  544. 'yes' => __( 'Yes', 'pen' ),
  545. 'no' => __( 'No', 'pen' ),
  546. );
  547. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  548. $setting_id = 'content_footer_display';
  549. $label = __( 'Display post footer', 'pen' );
  550. if ( pen_option_get( $setting_id ) ) {
  551. $default = __( 'Yes', 'pen' );
  552. } else {
  553. $default = __( 'No', 'pen' );
  554. }
  555. $choices = array(
  556. 'default' => sprintf(
  557. '%s (%s)',
  558. esc_html__( 'Default', 'pen' ),
  559. esc_html( $default )
  560. ),
  561. 'yes' => __( 'Yes', 'pen' ),
  562. 'no' => __( 'No', 'pen' ),
  563. );
  564. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  565. $setting_id = 'content_search_display';
  566. $label = __( 'Display search box', 'pen' );
  567. if ( pen_option_get( 'search_display' ) ) {
  568. $default = __( 'Yes', 'pen' );
  569. } else {
  570. $default = __( 'No', 'pen' );
  571. }
  572. $choices = array(
  573. 'default' => sprintf(
  574. '%s (%s)',
  575. esc_html__( 'Default', 'pen' ),
  576. esc_html( $default )
  577. ),
  578. 'yes' => __( 'Yes', 'pen' ),
  579. 'no' => __( 'No', 'pen' ),
  580. );
  581. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  582. ?>
  583. </fieldset>
  584. <fieldset>
  585. <legend>
  586. <?php
  587. esc_html_e( 'Location', 'pen' );
  588. ?>
  589. </legend>
  590. <?php
  591. if ( 'post' === $post_type ) {
  592. $setting_id = 'content_author_location';
  593. $label = __( 'Author location', 'pen' );
  594. $default = ucfirst( pen_option_get( $setting_id ) );
  595. $choices = array(
  596. 'default' => sprintf(
  597. '%s (%s)',
  598. esc_html__( 'Default', 'pen' ),
  599. esc_html( $default )
  600. ),
  601. 'header' => __( 'Post header', 'pen' ),
  602. 'footer' => __( 'Post footer', 'pen' ),
  603. );
  604. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  605. $setting_id = 'content_date_location';
  606. $label = __( 'Date location', 'pen' );
  607. $default = ucfirst( pen_option_get( $setting_id ) );
  608. $choices = array(
  609. 'default' => sprintf(
  610. '%s (%s)',
  611. esc_html__( 'Default', 'pen' ),
  612. esc_html( $default )
  613. ),
  614. 'header' => __( 'Post header', 'pen' ),
  615. 'footer' => __( 'Post footer', 'pen' ),
  616. );
  617. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  618. $setting_id = 'content_category_location';
  619. $label = __( 'Categories location', 'pen' );
  620. $default = ucfirst( pen_option_get( $setting_id ) );
  621. $choices = array(
  622. 'default' => sprintf(
  623. '%s (%s)',
  624. esc_html__( 'Default', 'pen' ),
  625. esc_html( $default )
  626. ),
  627. 'header' => __( 'Post header', 'pen' ),
  628. 'footer' => __( 'Post footer', 'pen' ),
  629. );
  630. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  631. }
  632. $setting_id = 'content_share_location';
  633. $label = __( 'Share buttons location', 'pen' );
  634. $default = ucfirst( pen_option_get( $setting_id ) );
  635. $choices = array(
  636. 'default' => sprintf(
  637. '%s (%s)',
  638. esc_html__( 'Default', 'pen' ),
  639. esc_html( $default )
  640. ),
  641. 'header' => __( 'Post header', 'pen' ),
  642. 'content' => __( 'Post content', 'pen' ),
  643. 'footer' => __( 'Post footer', 'pen' ),
  644. );
  645. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  646. $setting_id = 'content_search_location';
  647. $label = __( 'Search box location', 'pen' );
  648. $default = ucfirst( pen_option_get( 'search_location' ) );
  649. $choices = array(
  650. 'default' => sprintf(
  651. '%s (%s)',
  652. esc_html__( 'Default', 'pen' ),
  653. esc_html( $default )
  654. ),
  655. 'header' => __( 'Site header', 'pen' ),
  656. 'content' => __( 'Content area', 'pen' ),
  657. );
  658. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  659. ?>
  660. </fieldset>
  661. <fieldset class="pen_sidebars">
  662. <legend>
  663. <?php
  664. esc_html_e( 'Sidebars', 'pen' );
  665. ?>
  666. </legend>
  667. <p>
  668. <?php
  669. esc_html_e( 'You can control the visibility of your sidebars for this specific post.', 'pen' );
  670. ?>
  671. </p>
  672. <?php
  673. $setting_id = 'pen_sidebar_header_primary_display';
  674. $label = sprintf(
  675. /* Translators: %s: a widget are name. */
  676. __( 'Hide the "%s" widget area', 'pen' ),
  677. __( 'Header - Primary', 'pen' )
  678. );
  679. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  680. $setting_id = 'pen_sidebar_header_secondary_display';
  681. $label = sprintf(
  682. /* Translators: %s: a widget are name. */
  683. __( 'Hide the "%s" widget area', 'pen' ),
  684. __( 'Header - Secondary', 'pen' )
  685. );
  686. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  687. $setting_id = 'pen_sidebar_search_top_display';
  688. $label = sprintf(
  689. /* Translators: %s: a widget are name. */
  690. __( 'Hide the "%s" widget area', 'pen' ),
  691. __( 'Search - Top', 'pen' )
  692. );
  693. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  694. $setting_id = 'pen_sidebar_search_left_display';
  695. $label = sprintf(
  696. /* Translators: %s: a widget are name. */
  697. __( 'Hide the "%s" widget area', 'pen' ),
  698. __( 'Search - Left', 'pen' )
  699. );
  700. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  701. $setting_id = 'pen_sidebar_search_right_display';
  702. $label = sprintf(
  703. /* Translators: %s: a widget are name. */
  704. __( 'Hide the "%s" widget area', 'pen' ),
  705. __( 'Search - Right', 'pen' )
  706. );
  707. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  708. $setting_id = 'pen_sidebar_search_bottom_display';
  709. $label = sprintf(
  710. /* Translators: %s: a widget are name. */
  711. __( 'Hide the "%s" widget area', 'pen' ),
  712. __( 'Search - Bottom', 'pen' )
  713. );
  714. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  715. $setting_id = 'pen_sidebar_top_display';
  716. $label = sprintf(
  717. /* Translators: %s: a widget are name. */
  718. __( 'Hide the "%s" widget area', 'pen' ),
  719. __( 'Top', 'pen' )
  720. );
  721. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  722. $setting_id = 'pen_sidebar_left_display';
  723. $label = sprintf(
  724. /* Translators: %s: a widget are name. */
  725. __( 'Hide the "%s" widget area', 'pen' ),
  726. __( 'Left', 'pen' )
  727. );
  728. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  729. $setting_id = 'pen_sidebar_right_display';
  730. $label = sprintf(
  731. /* Translators: %s: a widget are name. */
  732. __( 'Hide the "%s" widget area', 'pen' ),
  733. __( 'Right', 'pen' )
  734. );
  735. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  736. $setting_id = 'pen_sidebar_content_top_display';
  737. $label = sprintf(
  738. /* Translators: %s: a widget are name. */
  739. __( 'Hide the "%s" widget area', 'pen' ),
  740. __( 'Content - Top', 'pen' )
  741. );
  742. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  743. $setting_id = 'pen_sidebar_content_bottom_display';
  744. $label = sprintf(
  745. /* Translators: %s: a widget are name. */
  746. __( 'Hide the "%s" widget area', 'pen' ),
  747. __( 'Content - Bottom', 'pen' )
  748. );
  749. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  750. $setting_id = 'pen_sidebar_bottom_display';
  751. $label = sprintf(
  752. /* Translators: %s: a widget are name. */
  753. __( 'Hide the "%s" widget area', 'pen' ),
  754. __( 'Bottom', 'pen' )
  755. );
  756. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  757. $setting_id = 'pen_sidebar_footer_top_display';
  758. $label = sprintf(
  759. /* Translators: %s: a widget are name. */
  760. __( 'Hide the "%s" widget area', 'pen' ),
  761. __( 'Footer - Top', 'pen' )
  762. );
  763. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  764. $setting_id = 'pen_sidebar_footer_left_display';
  765. $label = sprintf(
  766. /* Translators: %s: a widget are name. */
  767. __( 'Hide the "%s" widget area', 'pen' ),
  768. __( 'Footer - Left', 'pen' )
  769. );
  770. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  771. $setting_id = 'pen_sidebar_footer_right_display';
  772. $label = sprintf(
  773. /* Translators: %s: a widget are name. */
  774. __( 'Hide the "%s" widget area', 'pen' ),
  775. __( 'Footer - Right', 'pen' )
  776. );
  777. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  778. $setting_id = 'pen_sidebar_footer_bottom_display';
  779. $label = sprintf(
  780. /* Translators: %s: a widget are name. */
  781. __( 'Hide the "%s" widget area', 'pen' ),
  782. __( 'Footer - Bottom', 'pen' )
  783. );
  784. pen_post_meta_checkbox( $post->ID, $setting_id, $label );
  785. ?>
  786. </fieldset>
  787. </div>
  788. </div>
  789. <div class="pen_post_meta_options pen_post_meta_list postbox">
  790. <h3>
  791. <?php
  792. esc_html_e( 'Lists', 'pen' );
  793. ?>
  794. </h3>
  795. <div class="pen_post_meta_container">
  796. <fieldset>
  797. <legend>
  798. <?php
  799. esc_html_e( 'Featured image', 'pen' );
  800. ?>
  801. </legend>
  802. <p>
  803. <?php
  804. esc_html_e( 'The image settings below except for the the "Display featured image" would only apply to "Plain" lists (Customize &rarr; Content &rarr; Layout).', 'pen' );
  805. ?>
  806. </p>
  807. <?php
  808. $setting_id = 'background_image_content_title_dynamic';
  809. $label = __( 'Use as title background', 'pen' );
  810. if ( pen_option_get( $setting_id ) ) {
  811. $default = __( 'Yes', 'pen' );
  812. } else {
  813. $default = __( 'No', 'pen' );
  814. }
  815. $choices = array(
  816. 'default' => sprintf(
  817. '%s (%s)',
  818. esc_html__( 'Default', 'pen' ),
  819. esc_html( $default )
  820. ),
  821. 'yes' => __( 'Yes', 'pen' ),
  822. 'no' => __( 'No', 'pen' ),
  823. );
  824. pen_post_meta_select( $post->ID, 'list_' . $setting_id, $choices, $default, $label );
  825. $setting_id = 'list_thumbnail_display';
  826. $label = __( 'Display featured image', 'pen' );
  827. if ( pen_option_get( $setting_id ) ) {
  828. $default = __( 'Yes', 'pen' );
  829. } else {
  830. $default = __( 'No', 'pen' );
  831. }
  832. $choices = array(
  833. 'default' => sprintf(
  834. '%s (%s)',
  835. esc_html__( 'Default', 'pen' ),
  836. esc_html( $default )
  837. ),
  838. 'yes' => __( 'Yes', 'pen' ),
  839. 'no' => __( 'No', 'pen' ),
  840. );
  841. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  842. $setting_id = 'list_thumbnail_resize';
  843. $label = __( 'Featured image size', 'pen' );
  844. $default = ucfirst( pen_option_get( $setting_id ) );
  845. pen_post_meta_select( $post->ID, $setting_id, $thumbnail_sizes, $default, $label );
  846. $setting_id = 'list_thumbnail_rotate';
  847. $label = __( 'Rotate', 'pen' );
  848. if ( pen_option_get( $setting_id ) ) {
  849. $default = __( 'Yes', 'pen' );
  850. } else {
  851. $default = __( 'No', 'pen' );
  852. }
  853. $choices = array(
  854. 'default' => sprintf(
  855. '%s (%s)',
  856. esc_html__( 'Default', 'pen' ),
  857. esc_html( $default )
  858. ),
  859. 'yes' => __( 'Yes', 'pen' ),
  860. 'no' => __( 'No', 'pen' ),
  861. );
  862. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  863. $setting_id = 'list_thumbnail_alignment';
  864. $label = __( 'Alignment', 'pen' );
  865. $default = ucfirst( pen_option_get( $setting_id ) );
  866. $choices = array(
  867. 'default' => sprintf(
  868. '%s (%s)',
  869. esc_html__( 'Default', 'pen' ),
  870. esc_html( $default )
  871. ),
  872. 'left' => __( 'Left', 'pen' ),
  873. 'center' => __( 'Center', 'pen' ),
  874. 'right' => __( 'Right', 'pen' ),
  875. );
  876. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  877. $setting_id = 'list_thumbnail_frame';
  878. $label = __( 'Add frame', 'pen' );
  879. if ( pen_option_get( $setting_id ) ) {
  880. $default = __( 'Yes', 'pen' );
  881. } else {
  882. $default = __( 'No', 'pen' );
  883. }
  884. $choices = array(
  885. 'default' => sprintf(
  886. '%s (%s)',
  887. esc_html__( 'Default', 'pen' ),
  888. esc_html( $default )
  889. ),
  890. 'yes' => __( 'Yes', 'pen' ),
  891. 'no' => __( 'No', 'pen' ),
  892. );
  893. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  894. $setting_id = 'color_list_thumbnail_frame';
  895. $label = __( 'Frame color', 'pen' );
  896. if ( '#000000' === pen_option_get( $setting_id ) ) {
  897. $default = __( 'Dark', 'pen' );
  898. } else {
  899. $default = __( 'Light', 'pen' );
  900. }
  901. $choices = array(
  902. 'default' => sprintf(
  903. '%s (%s)',
  904. esc_html__( 'Default', 'pen' ),
  905. esc_html( $default )
  906. ),
  907. '#000000' => __( 'Dark', 'pen' ),
  908. '#ffffff' => __( 'Light', 'pen' ),
  909. );
  910. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  911. $setting_id = 'list_masonry_thumbnail_style';
  912. $label = __( 'Thumbnail style', 'pen' );
  913. $default = pen_option_get( $setting_id );
  914. $choices = array(
  915. 'default' => sprintf(
  916. /* Translators: %s a number. */
  917. __( 'Default (Style %s)', 'pen' ),
  918. esc_html( $default )
  919. ),
  920. 0 => __( 'None', 'pen' ),
  921. );
  922. for ( $i = 1; $i <= 10; $i++ ) {
  923. /* Translators: %d the style number. */
  924. $choices[ $i ] = sprintf( __( 'Style %d', 'pen' ), $i );
  925. }
  926. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  927. ?>
  928. </fieldset>
  929. <fieldset>
  930. <legend>
  931. <?php
  932. esc_html_e( 'Layout', 'pen' );
  933. ?>
  934. </legend>
  935. <?php
  936. $setting_id = 'list_post_header_alignment';
  937. $label = __( 'Center-align post header', 'pen' );
  938. if ( pen_option_get( $setting_id ) ) {
  939. $default = __( 'Yes', 'pen' );
  940. } else {
  941. $default = __( 'No', 'pen' );
  942. }
  943. $choices = array(
  944. 'default' => sprintf(
  945. '%s (%s)',
  946. esc_html__( 'Default', 'pen' ),
  947. esc_html( $default )
  948. ),
  949. 'yes' => __( 'Yes', 'pen' ),
  950. 'no' => __( 'No', 'pen' ),
  951. );
  952. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  953. $setting_id = 'list_title_alignment';
  954. $label = __( 'Center-align post title', 'pen' );
  955. if ( pen_option_get( $setting_id ) ) {
  956. $default = __( 'Yes', 'pen' );
  957. } else {
  958. $default = __( 'No', 'pen' );
  959. }
  960. $choices = array(
  961. 'default' => sprintf(
  962. '%s (%s)',
  963. esc_html__( 'Default', 'pen' ),
  964. esc_html( $default )
  965. ),
  966. 'yes' => __( 'Yes', 'pen' ),
  967. 'no' => __( 'No', 'pen' ),
  968. );
  969. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  970. ?>
  971. </fieldset>
  972. <fieldset>
  973. <legend>
  974. <?php
  975. esc_html_e( 'Animation', 'pen' );
  976. ?>
  977. </legend>
  978. <?php
  979. $setting_id = 'list_animation_reveal';
  980. $label = __( 'Post', 'pen' );
  981. $default = ucfirst( pen_option_get( $setting_id ) );
  982. $animations = array(
  983. 'default' => sprintf(
  984. '%s (%s)',
  985. esc_html__( 'Default', 'pen' ),
  986. esc_html( $default )
  987. ),
  988. );
  989. $animations = array_merge( $animations, pen_animations() );
  990. pen_post_meta_select( $post->ID, $setting_id, $animations, $default, $label );
  991. $setting_id = 'list_thumbnail_animation_reveal';
  992. $label = __( 'Thumbnail', 'pen' );
  993. $default = ucfirst( pen_option_get( $setting_id ) );
  994. $animations = array(
  995. 'default' => sprintf(
  996. '%s (%s)',
  997. esc_html__( 'Default', 'pen' ),
  998. esc_html( $default )
  999. ),
  1000. );
  1001. $animations = array_merge( $animations, pen_animations() );
  1002. pen_post_meta_select( $post->ID, $setting_id, $animations, $default, $label );
  1003. ?>
  1004. </fieldset>
  1005. <fieldset>
  1006. <legend>
  1007. <?php
  1008. esc_html_e( 'Visibility', 'pen' );
  1009. ?>
  1010. </legend>
  1011. <?php
  1012. $setting_id = 'list_header_display';
  1013. $label = __( 'Display post header', 'pen' );
  1014. if ( pen_option_get( $setting_id ) ) {
  1015. $default = __( 'Yes', 'pen' );
  1016. } else {
  1017. $default = __( 'No', 'pen' );
  1018. }
  1019. $choices = array(
  1020. 'default' => sprintf(
  1021. '%s (%s)',
  1022. esc_html__( 'Default', 'pen' ),
  1023. esc_html( $default )
  1024. ),
  1025. 'yes' => __( 'Yes', 'pen' ),
  1026. 'no' => __( 'No', 'pen' ),
  1027. );
  1028. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1029. $setting_id = 'list_title_display';
  1030. $label = __( 'Display post title', 'pen' );
  1031. if ( pen_option_get( $setting_id ) ) {
  1032. $default = __( 'Yes', 'pen' );
  1033. } else {
  1034. $default = __( 'No', 'pen' );
  1035. }
  1036. $choices = array(
  1037. 'default' => sprintf(
  1038. '%s (%s)',
  1039. esc_html__( 'Default', 'pen' ),
  1040. esc_html( $default )
  1041. ),
  1042. 'yes' => __( 'Yes', 'pen' ),
  1043. 'no' => __( 'No', 'pen' ),
  1044. );
  1045. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1046. if ( 'post' === $post_type ) {
  1047. $setting_id = 'list_author_display';
  1048. $label = __( 'Display author link', 'pen' );
  1049. if ( pen_option_get( $setting_id ) ) {
  1050. $default = __( 'Yes', 'pen' );
  1051. } else {
  1052. $default = __( 'No', 'pen' );
  1053. }
  1054. $choices = array(
  1055. 'default' => sprintf(
  1056. '%s (%s)',
  1057. esc_html__( 'Default', 'pen' ),
  1058. esc_html( $default )
  1059. ),
  1060. 'yes' => __( 'Yes', 'pen' ),
  1061. 'no' => __( 'No', 'pen' ),
  1062. );
  1063. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1064. $setting_id = 'list_date_display';
  1065. $label = __( 'Display post date', 'pen' );
  1066. if ( pen_option_get( $setting_id ) ) {
  1067. $default = __( 'Yes', 'pen' );
  1068. } else {
  1069. $default = __( 'No', 'pen' );
  1070. }
  1071. $choices = array(
  1072. 'default' => sprintf(
  1073. '%s (%s)',
  1074. esc_html__( 'Default', 'pen' ),
  1075. esc_html( $default )
  1076. ),
  1077. 'yes' => __( 'Yes', 'pen' ),
  1078. 'no' => __( 'No', 'pen' ),
  1079. );
  1080. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1081. $setting_id = 'list_category_display';
  1082. $label = __( 'Display category links', 'pen' );
  1083. if ( pen_option_get( $setting_id ) ) {
  1084. $default = __( 'Yes', 'pen' );
  1085. } else {
  1086. $default = __( 'No', 'pen' );
  1087. }
  1088. $choices = array(
  1089. 'default' => sprintf(
  1090. '%s (%s)',
  1091. esc_html__( 'Default', 'pen' ),
  1092. esc_html( $default )
  1093. ),
  1094. 'yes' => __( 'Yes', 'pen' ),
  1095. 'no' => __( 'No', 'pen' ),
  1096. );
  1097. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1098. $setting_id = 'list_summary_display';
  1099. $label = __( 'Display post summary', 'pen' );
  1100. if ( pen_option_get( $setting_id ) ) {
  1101. $default = __( 'Yes', 'pen' );
  1102. } else {
  1103. $default = __( 'No', 'pen' );
  1104. }
  1105. $choices = array(
  1106. 'default' => sprintf(
  1107. '%s (%s)',
  1108. esc_html__( 'Default', 'pen' ),
  1109. esc_html( $default )
  1110. ),
  1111. 'yes' => __( 'Yes', 'pen' ),
  1112. 'no' => __( 'No', 'pen' ),
  1113. );
  1114. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1115. $setting_id = 'list_profile_display';
  1116. $label = __( 'Display author profile', 'pen' );
  1117. if ( pen_option_get( $setting_id ) ) {
  1118. $default = __( 'Yes', 'pen' );
  1119. } else {
  1120. $default = __( 'No', 'pen' );
  1121. }
  1122. $choices = array(
  1123. 'default' => sprintf(
  1124. '%s (%s)',
  1125. esc_html__( 'Default', 'pen' ),
  1126. esc_html( $default )
  1127. ),
  1128. 'yes' => __( 'Yes', 'pen' ),
  1129. 'no' => __( 'No', 'pen' ),
  1130. );
  1131. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1132. $setting_id = 'list_tags_display';
  1133. $label = __( 'Display post tags', 'pen' );
  1134. if ( pen_option_get( $setting_id ) ) {
  1135. $default = __( 'Yes', 'pen' );
  1136. } else {
  1137. $default = __( 'No', 'pen' );
  1138. }
  1139. $choices = array(
  1140. 'default' => sprintf(
  1141. '%s (%s)',
  1142. esc_html__( 'Default', 'pen' ),
  1143. esc_html( $default )
  1144. ),
  1145. 'yes' => __( 'Yes', 'pen' ),
  1146. 'no' => __( 'No', 'pen' ),
  1147. );
  1148. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1149. }
  1150. $setting_id = 'list_footer_display';
  1151. $label = __( 'Display post footer', 'pen' );
  1152. if ( pen_option_get( $setting_id ) ) {
  1153. $default = __( 'Yes', 'pen' );
  1154. } else {
  1155. $default = __( 'No', 'pen' );
  1156. }
  1157. $choices = array(
  1158. 'default' => sprintf(
  1159. '%s (%s)',
  1160. esc_html__( 'Default', 'pen' ),
  1161. esc_html( $default )
  1162. ),
  1163. 'yes' => __( 'Yes', 'pen' ),
  1164. 'no' => __( 'No', 'pen' ),
  1165. );
  1166. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1167. $setting_id = 'list_button_comment_display';
  1168. $label = __( 'Display comment button', 'pen' );
  1169. if ( pen_option_get( $setting_id ) ) {
  1170. $default = __( 'Yes', 'pen' );
  1171. } else {
  1172. $default = __( 'No', 'pen' );
  1173. }
  1174. $choices = array(
  1175. 'default' => sprintf(
  1176. '%s (%s)',
  1177. esc_html__( 'Default', 'pen' ),
  1178. esc_html( $default )
  1179. ),
  1180. 'yes' => __( 'Yes', 'pen' ),
  1181. 'no' => __( 'No', 'pen' ),
  1182. );
  1183. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1184. $setting_id = 'list_button_edit_display';
  1185. $label = __( 'Display post edit button', 'pen' );
  1186. if ( pen_option_get( $setting_id ) ) {
  1187. $default = __( 'Yes', 'pen' );
  1188. } else {
  1189. $default = __( 'No', 'pen' );
  1190. }
  1191. $choices = array(
  1192. 'default' => sprintf(
  1193. '%s (%s)',
  1194. esc_html__( 'Default', 'pen' ),
  1195. esc_html( $default )
  1196. ),
  1197. 'yes' => __( 'Yes', 'pen' ),
  1198. 'no' => __( 'No', 'pen' ),
  1199. );
  1200. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1201. ?>
  1202. </fieldset>
  1203. <?php
  1204. if ( 'post' === $post_type ) {
  1205. ?>
  1206. <fieldset>
  1207. <legend>
  1208. <?php
  1209. esc_html_e( 'Location', 'pen' );
  1210. ?>
  1211. </legend>
  1212. <?php
  1213. $setting_id = 'list_author_location';
  1214. $label = __( 'Author link location', 'pen' );
  1215. $default = ucfirst( pen_option_get( $setting_id ) );
  1216. $choices = array(
  1217. 'default' => sprintf(
  1218. '%s (%s)',
  1219. esc_html__( 'Default', 'pen' ),
  1220. esc_html( $default )
  1221. ),
  1222. 'header' => __( 'Post header', 'pen' ),
  1223. 'footer' => __( 'Post footer', 'pen' ),
  1224. );
  1225. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1226. $setting_id = 'list_date_location';
  1227. $label = __( 'Post date location', 'pen' );
  1228. $default = ucfirst( pen_option_get( $setting_id ) );
  1229. $choices = array(
  1230. 'default' => sprintf(
  1231. '%s (%s)',
  1232. esc_html__( 'Default', 'pen' ),
  1233. esc_html( $default )
  1234. ),
  1235. 'header' => __( 'Post header', 'pen' ),
  1236. 'footer' => __( 'Post footer', 'pen' ),
  1237. );
  1238. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1239. $setting_id = 'list_category_location';
  1240. $label = __( 'Category links location', 'pen' );
  1241. $default = ucfirst( pen_option_get( $setting_id ) );
  1242. $choices = array(
  1243. 'default' => sprintf(
  1244. '%s (%s)',
  1245. esc_html__( 'Default', 'pen' ),
  1246. esc_html( $default )
  1247. ),
  1248. 'header' => __( 'Post header', 'pen' ),
  1249. 'footer' => __( 'Post footer', 'pen' ),
  1250. );
  1251. pen_post_meta_select( $post->ID, $setting_id, $choices, $default, $label );
  1252. ?>
  1253. </fieldset>
  1254. <?php
  1255. }
  1256. ?>
  1257. </div>
  1258. </div>
  1259. </div>
  1260. <div id="pen_meta_box_footer">
  1261. <?php
  1262. $pen_post_meta_hp = esc_attr( md5( NONCE_SALT . $post->ID . date( 'd' ) ) );
  1263. ?>
  1264. <input class="screen-reader-text" type="email" name="<?php echo $pen_post_meta_hp; ?>" id="<?php echo $pen_post_meta_hp; ?>" size="30" value="" />
  1265. <div class="pen_right">
  1266. <a href="<?php echo esc_url( PEN_SUPPORT_URL ); ?>" class="button pen_order" target="_blank" title="<?php esc_attr_e( 'Request new features and get them in a week!', 'pen' ); ?>">
  1267. <?php
  1268. esc_html_e( 'Order new features! (free of charge)', 'pen' );
  1269. ?>
  1270. </a>
  1271. </div>
  1272. </div>
  1273. <div style="clear:both"></div>
  1274. <?php
  1275. echo ob_get_clean(); /* phpcs:ignore */
  1276. }
  1277. }
  1278. if ( ! function_exists( 'pen_post_meta_select' ) ) {
  1279. /**
  1280. * Generates HTML for <select> fields.
  1281. *
  1282. * @param integer $post_id The content ID.
  1283. * @param string $setting_id The setting ID.
  1284. * @param array $choices Choices.
  1285. * @param array $default The default.
  1286. * @param array $label Field label.
  1287. *
  1288. * @since Pen 1.0.8
  1289. * @return void
  1290. */
  1291. function pen_post_meta_select( $post_id, $setting_id, $choices, $default, $label ) {
  1292. $setting_id = 'pen_' . $setting_id . '_override';
  1293. $value = get_post_meta( $post_id, $setting_id, true );
  1294. $setting_id = esc_attr( $setting_id );
  1295. ?>
  1296. <div class="pen_wrap">
  1297. <label>
  1298. <?php
  1299. echo esc_html( $label );
  1300. ?>
  1301. </label>
  1302. <select class="widefat" name="<?php echo $setting_id; /* phpcs:ignore */ ?>" id="<?php echo $setting_id; /* phpcs:ignore */ ?>">
  1303. <?php
  1304. foreach ( $choices as $id => $name ) {
  1305. ?>
  1306. <option value="<?php echo esc_attr( $id ); ?>"<?php selected( $value, $id ); ?>>
  1307. <?php
  1308. echo esc_html( $name );
  1309. ?>
  1310. </option>
  1311. <?php
  1312. }
  1313. ?>
  1314. </select>
  1315. </div>
  1316. <?php
  1317. }
  1318. }
  1319. if ( ! function_exists( 'pen_post_meta_checkbox' ) ) {
  1320. /**
  1321. * Generates HTML for checkboxes fields.
  1322. *
  1323. * @param integer $post_id The content ID.
  1324. * @param string $setting_id The setting ID.
  1325. * @param string $label Field label.
  1326. *
  1327. * @since Pen 1.0.8
  1328. * @return void
  1329. */
  1330. function pen_post_meta_checkbox( $post_id, $setting_id, $label ) {
  1331. $value = get_post_meta( $post_id, $setting_id, true );
  1332. $setting_id = esc_attr( $setting_id );
  1333. ?>
  1334. <label for="<?php echo $setting_id; /* phpcs:ignore */ ?>" class="pen_wrap">
  1335. <input type="checkbox" name="<?php echo $setting_id; /* phpcs:ignore */ ?>" id="<?php echo $setting_id; /* phpcs:ignore */ ?>" <?php checked( $value, 'on' ); ?>>
  1336. <?php
  1337. echo esc_html( $label );
  1338. ?>
  1339. </label>
  1340. <?php
  1341. }
  1342. }
  1343. if ( ! function_exists( 'pen_post_meta_save' ) ) {
  1344. /**
  1345. * Saves the meta data.
  1346. *
  1347. * @since Pen 1.0.0
  1348. * @return void
  1349. */
  1350. function pen_post_meta_save() {
  1351. if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
  1352. return;
  1353. }
  1354. global $post;
  1355. if ( ! is_object( $post ) ) {
  1356. return;
  1357. }
  1358. if ( wp_is_post_revision( $post->ID ) ) {
  1359. return;
  1360. }
  1361. if ( ! current_user_can( 'edit_post', $post->ID ) ) {
  1362. return;
  1363. }
  1364. // Honey pot.
  1365. if ( pen_filter_input( 'POST', md5( NONCE_SALT . $post->ID . date( 'd' ) ) ) ) {
  1366. return;
  1367. }
  1368. $options = pen_post_meta_options();
  1369. foreach ( $options as $option => $label ) {
  1370. $new = pen_filter_input( 'POST', $option );
  1371. if ( $new ) {
  1372. update_post_meta( $post->ID, $option, $new );
  1373. } else {
  1374. delete_post_meta( $post->ID, $option );
  1375. }
  1376. }
  1377. }
  1378. add_action( 'save_post', 'pen_post_meta_save' );
  1379. }
  1380. if ( ! function_exists( 'pen_post_meta_box' ) ) {
  1381. /**
  1382. * Adds the meta box.
  1383. *
  1384. * @param object $post An instance of the $post.
  1385. *
  1386. * @since Pen 1.0.0
  1387. * @return void
  1388. */
  1389. function pen_post_meta_box( $post ) {
  1390. if ( in_array( (string) get_post_type(), array( 'page', 'post' ), true ) ) {
  1391. add_meta_box( 'pen_meta_box', __( 'Options', 'pen' ), 'pen_post_meta', get_post_type(), 'normal', 'high' );
  1392. }
  1393. }
  1394. add_action( 'add_meta_boxes', 'pen_post_meta_box' );
  1395. }
  1396. if ( ! function_exists( 'pen_post_meta_scripts' ) ) {
  1397. /**
  1398. * Adds post meta JavaScripts.
  1399. *
  1400. * @param string $hook_suffix The file name.
  1401. *
  1402. * @since Pen 1.0.0
  1403. * @return void
  1404. */
  1405. function pen_post_meta_scripts( $hook_suffix ) {
  1406. if ( 'post.php' === $hook_suffix || 'post-new.php' === $hook_suffix ) {
  1407. wp_enqueue_script( 'pen-postmeta-js', get_template_directory_uri() . '/assets/js/pen-backend.js', array( 'jquery' ), PEN_THEME_VERSION, true );
  1408. wp_localize_script(
  1409. 'pen-postmeta-js',
  1410. 'pen_backend_js',
  1411. array(
  1412. 'ajax_url' => admin_url( 'admin-ajax.php' ),
  1413. 'text' => array(
  1414. 'pen_theme' => __( 'Pen', 'pen' ),
  1415. 'nothing_selected' => __( 'Please select an item.', 'pen' ),
  1416. 'toggle' => __( 'Toggle panel: Pen Options', 'pen' ),
  1417. ),
  1418. )
  1419. );
  1420. wp_enqueue_style( 'pen-postmeta-css', get_template_directory_uri() . '/assets/css/pen-backend.css', array(), PEN_THEME_VERSION );
  1421. }
  1422. }
  1423. add_action( 'admin_enqueue_scripts', 'pen_post_meta_scripts' );
  1424. }
  1425. if ( ! function_exists( 'pen_content_title_background' ) ) {
  1426. /**
  1427. * Returns background image URL for content header.
  1428. *
  1429. * @param bool $is_singular Result of is_singular(), for better performance.
  1430. * @param int $post_id The post ID.
  1431. *
  1432. * @since Pen 1.1.1
  1433. * @return string
  1434. */
  1435. function pen_content_title_background( $is_singular, $post_id ) {
  1436. $background_image_dynamic = '';
  1437. if ( $is_singular ) {
  1438. $thumbnail_as_background = get_post_meta( $post_id, 'pen_content_background_image_content_title_dynamic_override', true );
  1439. if ( ! $thumbnail_as_background || 'default' === $thumbnail_as_background ) {
  1440. $thumbnail_as_background = pen_option_get( 'background_image_content_title_dynamic' );
  1441. }
  1442. } else {
  1443. $thumbnail_as_background = get_post_meta( $post_id, 'pen_list_background_image_content_title_dynamic_override', true );
  1444. if ( ! $thumbnail_as_background || 'default' === $thumbnail_as_background ) {
  1445. $thumbnail_as_background = pen_option_get( 'background_image_content_title_dynamic' );
  1446. }
  1447. }
  1448. if ( $thumbnail_as_background ) {
  1449. $thumbnail = esc_url( get_the_post_thumbnail_url( null, 'large' ) );
  1450. if ( $thumbnail ) {
  1451. $background_image_dynamic = $thumbnail;
  1452. }
  1453. }
  1454. return $background_image_dynamic;
  1455. }
  1456. }