1
0

functions.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. <?php
  2. require(get_template_directory() . "/dist/wp_bootstrap_navwalker.php"); // bootstrap navwalker for nav
  3. /** CONFIGURATION THINGS **/
  4. add_theme_support('post-thumbnails');
  5. set_post_thumbnail_size(150, 150, true);
  6. register_nav_menu("primary", "Top Menu");
  7. /** STYLES **/
  8. function ams_enqueue_styles() {
  9. wp_enqueue_style('bootstrap', get_template_directory_uri() . '/dist/bootstrap/bootstrap.css', array(), '4.0.0-3');
  10. wp_enqueue_style('slick', get_template_directory_uri() . '/dist/slick/slick.css', array(), '1.6.0');
  11. wp_enqueue_style('slick-theme', get_template_directory_uri() . '/dist/slick/slick-theme.css', array("slick"), '1.6.0');
  12. wp_enqueue_style('ams', get_template_directory_uri() . '/style.css', array("slick", "slick-theme", "bootstrap"), '1.0.0');
  13. }
  14. function ams_enqueue_scripts() {
  15. wp_enqueue_script('bootstrap', get_template_directory_uri() . '/dist/bootstrap/bootstrap.js', array("jquery"), '4.0.0-3');
  16. wp_enqueue_script('stickyfill', get_template_directory_uri() . '/dist/stickyfill/stickyfill.js', array("jquery"), '1.1.4');
  17. wp_enqueue_script('slick', get_template_directory_uri() . '/dist/slick/slick.js', array("jquery"), '1.6.0');
  18. }
  19. add_action('wp_enqueue_scripts', 'ams_enqueue_styles');
  20. add_action('wp_enqueue_scripts', 'ams_enqueue_scripts');
  21. /** MCE BUTTON COLUMN **/
  22. function ams_quicktag() {
  23. if(wp_script_is('quicktags')) { ?>
  24. <script type="text/javascript">
  25. QTags.addButton( 'eg_ams_column', 'column', '<!--column-->', '', '', 'New column tag');
  26. </script><?php
  27. }
  28. }
  29. add_action( 'admin_print_footer_scripts', 'ams_quicktag' );
  30. /** CUSTOM POST TYPES **/
  31. add_action('init', 'create_post_types');
  32. function create_post_types() {
  33. register_post_type( 'partners',
  34. array(
  35. 'labels' => array(
  36. 'name' => __( 'Initiativpartner' ),
  37. 'singular_name' => __( 'Partner' )
  38. ),
  39. 'public' => true,
  40. 'has_archive' => true,
  41. 'menu_icon' => 'dashicons-admin-users',
  42. 'supports' => array('title', 'editor', 'thumbnail'),
  43. 'exlude_from_search' => true
  44. )
  45. );
  46. register_post_type( 'tdas',
  47. array(
  48. 'labels' => array(
  49. 'name' => __( 'TdA' ),
  50. 'singular_name' => __( 'TdA' )
  51. ),
  52. 'public' => true,
  53. 'has_archive' => true,
  54. 'menu_icon' => 'dashicons-calendar-alt',
  55. 'supports' => array('title', 'editor', 'thumbnail'),
  56. )
  57. );
  58. register_post_type( 'projects',
  59. array(
  60. 'labels' => array(
  61. 'name' => __( 'Projekte' ),
  62. 'singular_name' => __( 'Projekt' )
  63. ),
  64. 'public' => true,
  65. 'has_archive' => true,
  66. 'menu_icon' => 'dashicons-calendar-alt',
  67. 'supports' => array('title', 'editor', 'thumbnail'),
  68. 'rewrite' => array('slug' => 'projekte'),
  69. )
  70. );
  71. }
  72. /** POST META BOX **/
  73. add_action( 'load-post.php', 'ams_post_box_setup' );
  74. add_action( 'load-post-new.php', 'ams_post_box_setup' );
  75. function ams_post_box_setup() {
  76. add_action( 'add_meta_boxes', 'ams_post_box_add' );
  77. add_action( 'save_post', 'ams_post_box_save', 10, 2 );
  78. }
  79. function ams_post_box_add() {
  80. add_meta_box(
  81. 'ams_post_box', // Unique ID
  82. esc_html__( 'Post type'), // Title
  83. 'ams_post_box', // Callback function
  84. 'post', // Admin page (or post type)
  85. 'side', // Context
  86. 'default' // Priority
  87. );
  88. }
  89. function ams_post_box( $object, $box ) { ?>
  90. <?php wp_nonce_field( basename( __FILE__ ), 'ams_post_box_nonce' ); ?>
  91. <p>
  92. <label for="ams_dual_columns_post">2 Spalten</label>
  93. <input type="checkbox" name="ams_dual_columns_post" id="ams_dual_columns_post" style="float: right;" <?php if(get_post_meta($object->ID, 'ams_dual_columns_post', true)) { echo "checked"; } ?> />
  94. <br />
  95. <label for="ams_tda_gallery">TdA Gallery</label>
  96. <input type="checkbox" name="ams_tda_gallery" id="ams_tda_gallery" style="float: right;" <?php if(get_post_meta($object->ID, 'ams_tda_gallery', true)) { echo "checked"; } ?> />
  97. <br />
  98. <label for="ams_partners">Partner</label>
  99. <input type="checkbox" name="ams_partners" id="ams_partners" style="float: right;" <?php if(get_post_meta($object->ID, 'ams_partners', true)) { echo "checked"; } ?> />
  100. <br />
  101. <label for="ams_projects">Projekte</label>
  102. <input type="checkbox" name="ams_projects" id="ams_projects" style="float: right;" <?php if(get_post_meta($object->ID, 'ams_projects', true)) { echo "checked"; } ?> />
  103. </p><?php
  104. }
  105. function ams_post_box_save( $post_id, $post ) {
  106. $inputs = array(
  107. "ams_dual_columns_post",
  108. "ams_tda_gallery",
  109. "ams_partners",
  110. "ams_projects"
  111. );
  112. if(!isset( $_POST['ams_post_box_nonce']) || !wp_verify_nonce($_POST['ams_post_box_nonce'], basename(__FILE__))) {
  113. return $post_id;
  114. }
  115. $post_type = get_post_type_object( $post->post_type );
  116. if(!current_user_can( $post_type->cap->edit_post, $post_id)) {
  117. return $post_id;
  118. }
  119. foreach($inputs as $input) {
  120. if(isset($_POST[$input]) && !get_post_meta( $post_id, $input, true )) {
  121. add_post_meta( $post_id, $input, true, true );
  122. } else if(!isset($_POST[$input]) && get_post_meta( $post_id, $input, true )) {
  123. delete_post_meta( $post_id, $input);
  124. }
  125. }
  126. }
  127. /** TdA Slider **/
  128. global $tdaSlider; // TODO: remove this
  129. $tdaSlider = array(
  130. "TdA2016" => array(
  131. "url" => "http://www.architekturmachtschule.de/wp-content/uploads/2016/11/",
  132. "tag-der-architektur-2015-01.jpg",
  133. "tag-der-architektur-2015-02.jpg",
  134. "tag-der-architektur-2015-03.jpg",
  135. "tag-der-architektur-2015-04.jpg",
  136. "tag-der-architektur-2015-05.jpg",
  137. "tag-der-architektur-2015-06.jpg",
  138. "tag-der-architektur-2015-07.jpg",
  139. "tag-der-architektur-2015-08.jpg",
  140. "tag-der-architektur-2015-09.jpg",
  141. "tag-der-architektur-2015-10.jpg",
  142. "tag-der-architektur-2015-11.jpg",
  143. "tag-der-architektur-2015-12.jpg",
  144. "tag-der-architektur-2015-13.jpg",
  145. "tag-der-architektur-2015-14.jpg",
  146. "tag-der-architektur-2015-15.jpg",
  147. "tag-der-architektur-2015-16.jpg",
  148. "tag-der-architektur-2015-17.jpg",
  149. "tag-der-architektur-2015-18.jpg",
  150. "tag-der-architektur-2015-19.jpg",
  151. "tag-der-architektur-2015-20.jpg",
  152. "tag-der-architektur-2015-21.jpg",
  153. "tag-der-architektur-2015-22.jpg",
  154. "tag-der-architektur-2015-23.jpg",
  155. "tag-der-architektur-2015-24.jpg",
  156. "tag-der-architektur-2015-25.jpg",
  157. "tag-der-architektur-2015-26.jpg",
  158. "tag-der-architektur-2015-27.jpg",
  159. "tag-der-architektur-2015-28.jpg",
  160. "tag-der-architektur-2015-29.jpg",
  161. "tag-der-architektur-2015-30.jpg",
  162. "tag-der-architektur-2015-31.jpg",
  163. "tag-der-architektur-2015-32.jpg",
  164. "tag-der-architektur-2015-33.jpg",
  165. "tag-der-architektur-2015-34.jpg",
  166. "tag-der-architektur-2015-35.jpg",
  167. "tag-der-architektur-2015-36.jpg",
  168. "tag-der-architektur-2015-37.jpg",
  169. "tag-der-architektur-2015-38.jpg",
  170. "tag-der-architektur-2015-39.jpg",
  171. "tag-der-architektur-2015-40.jpg",
  172. "tag-der-architektur-2015-41.jpg",
  173. "tag-der-architektur-2015-42.jpg",
  174. "tag-der-architektur-2015-43.jpg"
  175. ),
  176. );
  177. // [carousel id="TdA2016"]
  178. function carousel_shortcode_func($atts) {
  179. global $tdaSlider;
  180. $a = shortcode_atts( array(
  181. 'id' => NULL
  182. ), $atts );
  183. if($a['id'] != NULL && array_key_exists($a['id'], $tdaSlider)) {
  184. $slider = $tdaSlider[$a['id']];
  185. $output = '<div class="owl-carousel">';
  186. foreach($slider as $key => $value) {
  187. if($key == "url") {
  188. continue;
  189. }
  190. $output .= '<div class="item" id="item-' . $key . '"><img id="img-' . $key . '" data-lazy="' . $slider['url'] . $value . '" style="height: 300px; width: auto;"></div>' . PHP_EOL;
  191. }
  192. $output .= '</div>';
  193. return $output;
  194. } else {
  195. return "<span style=\"color: red;\">Wrong Slider ID!</span>";
  196. }
  197. }
  198. add_shortcode('carousel', 'carousel_shortcode_func');
  199. /* TITLE STUFF */
  200. function ams_modify_titles($title, $id = null) {
  201. if(get_post_type() == "tdas") {
  202. return "Tag der Architektur" . preg_replace("/&#?[a-z0-9]{2,8};/i", "", $title) . " &raquo; " . get_bloginfo("name");
  203. }
  204. if(is_front_page()) {
  205. return get_bloginfo("name");
  206. }
  207. return ltrim(preg_replace("/&#?[a-z0-9]{2,8};/i","", $title)) . " &raquo; " . get_bloginfo("name");
  208. }
  209. add_filter( 'wp_title', 'ams_modify_titles', 10, 2 );
  210. ?>