1 | <?php |
||
2 | /** |
||
3 | * Theme helper functions. |
||
4 | * |
||
5 | * @package WordPress_GitHub_SYnc |
||
6 | */ |
||
7 | |||
8 | /** |
||
9 | * Returns the HTML markup to view the current post on GitHub. |
||
10 | * |
||
11 | * @return string |
||
12 | */ |
||
13 | function get_the_github_view_link() { |
||
14 | 1 | return '<a href="' . get_the_github_view_url() . '">' . apply_filters( 'wpghs_view_link_text', __( 'View this post on GitHub.', 'wp-github-sync' ) ) . '</a>'; |
|
15 | } |
||
16 | |||
17 | /** |
||
18 | * Returns the URL to view the current post on GitHub. |
||
19 | * |
||
20 | * @return string |
||
21 | */ |
||
22 | function get_the_github_view_url() { |
||
23 | 2 | $wpghs_post = new WordPress_GitHub_Sync_Post( get_the_ID(), WordPress_GitHub_Sync::$instance->api() ); |
|
24 | |||
25 | 2 | return $wpghs_post->github_view_url(); |
|
26 | } |
||
27 | |||
28 | /** |
||
29 | * Returns the HTML markup to edit the current post on GitHub. |
||
30 | * |
||
31 | * @return string |
||
32 | */ |
||
33 | function get_the_github_edit_link() { |
||
34 | 1 | return '<a href="' . get_the_github_edit_url() . '">' . apply_filters( 'wpghs_edit_link_text', __( 'Edit this post on GitHub.', 'wp-github-sync' ) ) . '</a>'; |
|
35 | } |
||
36 | |||
37 | /** |
||
38 | * Returns the URL to edit the current post on GitHub. |
||
39 | * |
||
40 | * @return string |
||
41 | */ |
||
42 | function get_the_github_edit_url() { |
||
43 | 2 | $wpghs_post = new WordPress_GitHub_Sync_Post( get_the_ID(), WordPress_GitHub_Sync::$instance->api() ); |
|
44 | |||
45 | 2 | return $wpghs_post->github_edit_url(); |
|
46 | } |
||
47 | |||
48 | |||
49 | /** |
||
50 | * Common WPGHS function with attributes and shortcode |
||
51 | * - type: 'link' (default) to return a HTML anchor tag with text, or 'url' for bare URL. |
||
52 | * - target: 'view' (default) or 'edit' to return the respective link/url. |
||
53 | * - text: text to be included in the link. Ignored if type='url'. |
||
54 | * |
||
55 | * Returns either a HTML formatted anchor tag or the bare URL of the current post on GitHub. |
||
56 | * |
||
57 | * @return string |
||
58 | */ |
||
59 | function write_wpghs_link( $atts ) { |
||
60 | |||
61 | $args = shortcode_atts( |
||
62 | array( |
||
63 | 'type' => 'link', |
||
64 | 'target' => 'view', |
||
65 | 'text' => '', |
||
66 | ), |
||
67 | $atts |
||
68 | ); |
||
69 | $type = esc_attr( $args['type'] ); |
||
70 | $target = esc_attr( $args['target'] ); |
||
71 | $text = esc_attr( $args['text'] ); |
||
72 | |||
73 | $output = ''; |
||
74 | |||
75 | switch ( $target ) { |
||
76 | View Code Duplication | case 'view': { |
|
77 | $getter = get_the_github_view_url(); |
||
78 | if ( ! empty( $text ) ) { |
||
79 | $linktext = $text; |
||
80 | } else { |
||
81 | $linktext = __( 'View this post on GitHub', 'wp-github-sync' ); |
||
82 | } |
||
83 | break; |
||
84 | } |
||
85 | View Code Duplication | case 'edit': { |
|
86 | $getter = get_the_github_edit_url(); |
||
87 | if ( ! empty( $text ) ) { |
||
88 | $linktext = $text; |
||
89 | } else { |
||
90 | $linktext = __( 'Edit this post on GitHub', 'wp-github-sync' ); |
||
91 | } |
||
92 | break; |
||
93 | } |
||
94 | default: { |
||
95 | $getter = get_the_github_view_url(); |
||
96 | $linktext = __( 'View this post on GitHub', 'wp-github-sync' ); |
||
97 | break; |
||
98 | } |
||
99 | } |
||
100 | |||
101 | switch ( $type ) { |
||
102 | case 'link': { |
||
103 | $output .= '<a href="' . $getter . '">' . $linktext . '</a>'; |
||
104 | break; |
||
105 | } |
||
106 | case 'url': { |
||
107 | $output .= $getter; |
||
108 | break; |
||
109 | } |
||
110 | default: { |
||
111 | $output .= '<a href="' . $getter . '">' . $linktext . '</a>'; |
||
112 | break; |
||
113 | } |
||
114 | } |
||
115 | |||
116 | return $output; |
||
117 | |||
118 | } |
||
119 |