Version Description
Download this release
Release Info
Developer | JohnPBloch |
Plugin | Child Themify |
Version | 1.1 |
Comparing to | |
See all releases |
Code changes from version 1.0.4 to 1.1
- assets/js/legacy.js +1 -1
- assets/js/legacy.min.js +1 -1
- child-themify.php +2 -2
- includes/legacy.php +14 -5
- includes/plugin.php +22 -12
- languages/child-themify.pot +24 -25
- readme.txt +10 -3
assets/js/legacy.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
/*! Child Themify - v1.
|
2 |
* Copyright (c) 2014 John P. Bloch */
|
3 |
(function (window, l10n) {
|
4 |
if (typeof l10n.link !== 'string' || l10n.link.length < 1) {
|
1 |
+
/*! Child Themify - v1.1
|
2 |
* Copyright (c) 2014 John P. Bloch */
|
3 |
(function (window, l10n) {
|
4 |
if (typeof l10n.link !== 'string' || l10n.link.length < 1) {
|
assets/js/legacy.min.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
/*! Child Themify - v1.
|
2 |
* Copyright (c) 2014 John P. Bloch */
|
3 |
!function(a,b){if(!("string"!=typeof b.link||b.link.length<1)){var c,d,e,f,g=a.document,h=g.getElementById("customize-current-theme-link");if(h){h=h.parentNode;for(c in h.childNodes)if(h.childNodes.hasOwnProperty(c)&&void 0!==h.childNodes[c].nodeName&&"UL"===h.childNodes[c].nodeName.toUpperCase()){d=h.childNodes[c];break}d&&(f=g.createElement("a"),f.appendChild(g.createTextNode(b.createAChildTheme)),f.href=b.link,e=g.createElement("li"),e.appendChild(f),d.appendChild(e))}}}(window,window.childThemify);
|
1 |
+
/*! Child Themify - v1.1
|
2 |
* Copyright (c) 2014 John P. Bloch */
|
3 |
!function(a,b){if(!("string"!=typeof b.link||b.link.length<1)){var c,d,e,f,g=a.document,h=g.getElementById("customize-current-theme-link");if(h){h=h.parentNode;for(c in h.childNodes)if(h.childNodes.hasOwnProperty(c)&&void 0!==h.childNodes[c].nodeName&&"UL"===h.childNodes[c].nodeName.toUpperCase()){d=h.childNodes[c];break}d&&(f=g.createElement("a"),f.appendChild(g.createTextNode(b.createAChildTheme)),f.href=b.link,e=g.createElement("li"),e.appendChild(f),d.appendChild(e))}}}(window,window.childThemify);
|
child-themify.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
* Plugin Name: Child Themify
|
4 |
* Description: Create child themes at the click of a button.
|
5 |
-
* Version: 1.
|
6 |
* Plugin URI: https://github.com/johnpbloch/child-themify
|
7 |
* Author: John P. Bloch
|
8 |
* License: GPL-2.0+
|
@@ -10,7 +10,7 @@
|
|
10 |
|
11 |
define( 'CTF_PATH', WP_PLUGIN_DIR . '/' . basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
|
12 |
define( 'CTF_URL', WP_PLUGIN_URL . '/' . basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
|
13 |
-
define( 'CTF_VERSION', '1.
|
14 |
|
15 |
|
16 |
function ctf_plugins_loaded() {
|
2 |
/*
|
3 |
* Plugin Name: Child Themify
|
4 |
* Description: Create child themes at the click of a button.
|
5 |
+
* Version: 1.1
|
6 |
* Plugin URI: https://github.com/johnpbloch/child-themify
|
7 |
* Author: John P. Bloch
|
8 |
* License: GPL-2.0+
|
10 |
|
11 |
define( 'CTF_PATH', WP_PLUGIN_DIR . '/' . basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
|
12 |
define( 'CTF_URL', WP_PLUGIN_URL . '/' . basename( dirname( __FILE__ ) ) . '/' . basename( __FILE__ ) );
|
13 |
+
define( 'CTF_VERSION', '1.1' );
|
14 |
|
15 |
|
16 |
function ctf_plugins_loaded() {
|
includes/legacy.php
CHANGED
@@ -10,7 +10,7 @@ class CTF_Babymaker {
|
|
10 |
public static function getTested() {
|
11 |
$theme = empty( $_GET['theme'] ) ? '' : $_GET['theme'];
|
12 |
if ( ! self::fertile() ) {
|
13 |
-
wp_die(
|
14 |
}
|
15 |
check_admin_referer( self::nonce_name( $theme ), '_ctf_nonce' );
|
16 |
}
|
@@ -60,6 +60,7 @@ class CTF_Babymaker {
|
|
60 |
}
|
61 |
if ( ! WP_Filesystem( $creds, get_theme_root() ) ) {
|
62 |
request_filesystem_credentials( $url, '', true, get_theme_root(), array( 'new_theme' ) );
|
|
|
63 |
return true;
|
64 |
}
|
65 |
self::procreate( $_POST['new_theme'], $theme );
|
@@ -84,6 +85,7 @@ class CTF_Babymaker {
|
|
84 |
'_ctf_nonce' => self::nonce( $theme_name ),
|
85 |
);
|
86 |
$baseLink = is_multisite() ? network_admin_url( 'themes.php' ) : admin_url( 'themes.php' );
|
|
|
87 |
return add_query_arg( $args, $baseLink );
|
88 |
}
|
89 |
|
@@ -103,8 +105,9 @@ class CTF_Babymaker {
|
|
103 |
return $links;
|
104 |
}
|
105 |
$link = self::getLink( $theme->get_stylesheet() );
|
106 |
-
$html = sprintf( "<a href=\"$link\">%s</a>",
|
107 |
$links['child-themify'] = $html;
|
|
|
108 |
return $links;
|
109 |
}
|
110 |
|
@@ -119,13 +122,15 @@ class CTF_Babymaker {
|
|
119 |
* @throws Exception If the global filesystem object isn't available
|
120 |
*/
|
121 |
public static function procreate( $new_theme, WP_Theme $template ) {
|
|
|
122 |
global $wp_filesystem;
|
123 |
if ( ! ( $wp_filesystem instanceof WP_Filesystem_Base ) ) {
|
124 |
if ( ! WP_Filesystem() ) {
|
125 |
-
throw new Exception(
|
126 |
}
|
127 |
}
|
128 |
$oldStylesheet = $template->get_stylesheet();
|
|
|
129 |
$oldName = $template->name;
|
130 |
$new_theme_directory = trailingslashit( get_theme_root() ) . sanitize_file_name( strtolower( $new_theme ) );
|
131 |
$wp_filesystem->mkdir( $new_theme_directory );
|
@@ -143,7 +148,10 @@ Template: $oldStylesheet
|
|
143 |
|
144 |
EOF;
|
145 |
$wp_filesystem->put_contents( $newStylesheet, $stylesheetContents );
|
146 |
-
|
|
|
|
|
|
|
147 |
}
|
148 |
|
149 |
public static function load_themes_page() {
|
@@ -151,6 +159,7 @@ EOF;
|
|
151 |
if ( ! is_multisite() ) {
|
152 |
add_action( 'admin_footer', array( 'CTF_Babymaker', 'link_current_theme' ) );
|
153 |
}
|
|
|
154 |
return;
|
155 |
}
|
156 |
require ABSPATH . 'wp-admin/admin-header.php';
|
@@ -166,7 +175,7 @@ EOF;
|
|
166 |
$filename .= defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? 'js' : 'min.js';
|
167 |
wp_enqueue_script( 'child-themify', plugins_url( $filename, CTF_PATH ), array(), '1.0', true );
|
168 |
wp_localize_script( 'child-themify', 'childThemify', array(
|
169 |
-
'createAChildTheme' =>
|
170 |
'link' => $link,
|
171 |
) );
|
172 |
}
|
10 |
public static function getTested() {
|
11 |
$theme = empty( $_GET['theme'] ) ? '' : $_GET['theme'];
|
12 |
if ( ! self::fertile() ) {
|
13 |
+
wp_die( esc_html__( 'You do not have permission to do that!', 'child-themify' ) );
|
14 |
}
|
15 |
check_admin_referer( self::nonce_name( $theme ), '_ctf_nonce' );
|
16 |
}
|
60 |
}
|
61 |
if ( ! WP_Filesystem( $creds, get_theme_root() ) ) {
|
62 |
request_filesystem_credentials( $url, '', true, get_theme_root(), array( 'new_theme' ) );
|
63 |
+
|
64 |
return true;
|
65 |
}
|
66 |
self::procreate( $_POST['new_theme'], $theme );
|
85 |
'_ctf_nonce' => self::nonce( $theme_name ),
|
86 |
);
|
87 |
$baseLink = is_multisite() ? network_admin_url( 'themes.php' ) : admin_url( 'themes.php' );
|
88 |
+
|
89 |
return add_query_arg( $args, $baseLink );
|
90 |
}
|
91 |
|
105 |
return $links;
|
106 |
}
|
107 |
$link = self::getLink( $theme->get_stylesheet() );
|
108 |
+
$html = sprintf( "<a href=\"$link\">%s</a>", esc_html__( 'Create a child theme', 'child-themify' ) );
|
109 |
$links['child-themify'] = $html;
|
110 |
+
|
111 |
return $links;
|
112 |
}
|
113 |
|
122 |
* @throws Exception If the global filesystem object isn't available
|
123 |
*/
|
124 |
public static function procreate( $new_theme, WP_Theme $template ) {
|
125 |
+
/** @var WP_Filesystem_Base $wp_filesystem */
|
126 |
global $wp_filesystem;
|
127 |
if ( ! ( $wp_filesystem instanceof WP_Filesystem_Base ) ) {
|
128 |
if ( ! WP_Filesystem() ) {
|
129 |
+
throw new Exception( esc_html__( 'Could not access the filesystem!', 'child-themify' ) );
|
130 |
}
|
131 |
}
|
132 |
$oldStylesheet = $template->get_stylesheet();
|
133 |
+
$templateDirectory = untrailingslashit( $template->get_stylesheet_directory() );
|
134 |
$oldName = $template->name;
|
135 |
$new_theme_directory = trailingslashit( get_theme_root() ) . sanitize_file_name( strtolower( $new_theme ) );
|
136 |
$wp_filesystem->mkdir( $new_theme_directory );
|
148 |
|
149 |
EOF;
|
150 |
$wp_filesystem->put_contents( $newStylesheet, $stylesheetContents );
|
151 |
+
if ( file_exists( "$templateDirectory/screenshot.png" ) ) {
|
152 |
+
$wp_filesystem->copy( "$templateDirectory/screenshot.png", "$new_theme_directory/screenshot.png" );
|
153 |
+
}
|
154 |
+
add_settings_error( '', 'child-themify', esc_html__( 'Your child theme was created successfully.', 'child-themify' ), 'updated' );
|
155 |
}
|
156 |
|
157 |
public static function load_themes_page() {
|
159 |
if ( ! is_multisite() ) {
|
160 |
add_action( 'admin_footer', array( 'CTF_Babymaker', 'link_current_theme' ) );
|
161 |
}
|
162 |
+
|
163 |
return;
|
164 |
}
|
165 |
require ABSPATH . 'wp-admin/admin-header.php';
|
175 |
$filename .= defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? 'js' : 'min.js';
|
176 |
wp_enqueue_script( 'child-themify', plugins_url( $filename, CTF_PATH ), array(), '1.0', true );
|
177 |
wp_localize_script( 'child-themify', 'childThemify', array(
|
178 |
+
'createAChildTheme' => esc_html__( 'Create a child theme', 'child-themify' ),
|
179 |
'link' => $link,
|
180 |
) );
|
181 |
}
|
includes/plugin.php
CHANGED
@@ -11,7 +11,7 @@ class Child_Themify {
|
|
11 |
*/
|
12 |
public function isActionAllowed( WP_Theme $theme ) {
|
13 |
if ( ! $this->checkCapability() ) {
|
14 |
-
wp_die(
|
15 |
}
|
16 |
check_admin_referer( $this->nonceName( $theme ), '_ctf_nonce' );
|
17 |
}
|
@@ -48,6 +48,7 @@ class Child_Themify {
|
|
48 |
if ( $theme ) {
|
49 |
$nonce_name .= '_' . $theme->get_stylesheet();
|
50 |
}
|
|
|
51 |
return $nonce_name;
|
52 |
}
|
53 |
|
@@ -70,8 +71,8 @@ class Child_Themify {
|
|
70 |
<h2><?php echo esc_html( sprintf( _x( 'Create a child theme from %s', 'The placeholder is for a theme\'s name', 'child-themify' ), $theme->name ) ); ?></h2>
|
71 |
|
72 |
<form method="post" action="<?php echo esc_url( $this->getLink( $theme ) ); ?>">
|
73 |
-
<label><?php esc_html_e( 'Name your child theme', 'child-themify' ); ?></label><br>
|
74 |
-
<input type="text" name="new_theme" />
|
75 |
<?php submit_button( __( "Let's go!", 'child-themify' ) ); ?>
|
76 |
</form>
|
77 |
</div>
|
@@ -96,9 +97,12 @@ class Child_Themify {
|
|
96 |
}
|
97 |
if ( ! WP_Filesystem( $creds, get_theme_root() ) ) {
|
98 |
request_filesystem_credentials( $url, '', true, get_theme_root(), array( 'new_theme' ) );
|
|
|
99 |
return true;
|
100 |
}
|
101 |
$this->create( $_POST['new_theme'], $theme );
|
|
|
|
|
102 |
}
|
103 |
|
104 |
/**
|
@@ -119,6 +123,7 @@ class Child_Themify {
|
|
119 |
'theme' => $theme->get_stylesheet(),
|
120 |
'_ctf_nonce' => $this->nonce( $theme ),
|
121 |
);
|
|
|
122 |
return add_query_arg( $args, $this->getBaseLink() );
|
123 |
}
|
124 |
|
@@ -150,9 +155,10 @@ class Child_Themify {
|
|
150 |
return $links;
|
151 |
}
|
152 |
$link = $this->getLink( $theme );
|
153 |
-
$html = sprintf(
|
154 |
|
155 |
$links['child-themify'] = $html;
|
|
|
156 |
return $links;
|
157 |
}
|
158 |
|
@@ -167,13 +173,15 @@ class Child_Themify {
|
|
167 |
* @throws Exception If the global filesystem object isn't available
|
168 |
*/
|
169 |
public function create( $new_theme, WP_Theme $template ) {
|
|
|
170 |
global $wp_filesystem;
|
171 |
if ( ! ( $wp_filesystem instanceof WP_Filesystem_Base ) ) {
|
172 |
if ( ! WP_Filesystem() ) {
|
173 |
-
throw new Exception(
|
174 |
}
|
175 |
}
|
176 |
$oldStylesheet = $template->get_stylesheet();
|
|
|
177 |
$oldName = $template->name;
|
178 |
$new_theme_directory = trailingslashit( get_theme_root() ) . sanitize_file_name( strtolower( $new_theme ) );
|
179 |
$wp_filesystem->mkdir( $new_theme_directory );
|
@@ -191,7 +199,10 @@ Template: $oldStylesheet
|
|
191 |
|
192 |
EOF;
|
193 |
$wp_filesystem->put_contents( $newStylesheet, $stylesheetContents );
|
194 |
-
|
|
|
|
|
|
|
195 |
}
|
196 |
|
197 |
public function loadThemesPage() {
|
@@ -215,9 +226,7 @@ EOF;
|
|
215 |
load_plugin_textdomain( 'child-themify', false, basename( dirname( __FILE__ ) ) . '/languages' );
|
216 |
add_filter( 'theme_action_links', array( $this, 'addActionLink' ), 10, 2 );
|
217 |
add_action( 'load-themes.php', array( $this, 'loadThemesPage' ) );
|
218 |
-
|
219 |
-
add_action( 'admin_footer-themes.php', array( $this, 'override_tmpl_theme_single' ) );
|
220 |
-
}
|
221 |
add_action( 'tmpl-theme-single_actions', array( $this, 'tmpl_theme_single_actions' ) );
|
222 |
add_filter( 'wp_prepare_themes_for_js', array( $this, 'prepare_themes' ) );
|
223 |
}
|
@@ -311,12 +320,13 @@ EOF;
|
|
311 |
public function prepare_themes( $themes ) {
|
312 |
if ( $this->checkCapability() ) {
|
313 |
foreach ( $themes as $slug => $data ) {
|
314 |
-
$theme
|
315 |
-
$
|
316 |
|
317 |
-
$themes[$slug]['actions']['childThemify'] = $
|
318 |
}
|
319 |
}
|
|
|
320 |
return $themes;
|
321 |
}
|
322 |
|
11 |
*/
|
12 |
public function isActionAllowed( WP_Theme $theme ) {
|
13 |
if ( ! $this->checkCapability() ) {
|
14 |
+
wp_die( esc_html__( 'You do not have permission to do that!', 'child-themify' ) );
|
15 |
}
|
16 |
check_admin_referer( $this->nonceName( $theme ), '_ctf_nonce' );
|
17 |
}
|
48 |
if ( $theme ) {
|
49 |
$nonce_name .= '_' . $theme->get_stylesheet();
|
50 |
}
|
51 |
+
|
52 |
return $nonce_name;
|
53 |
}
|
54 |
|
71 |
<h2><?php echo esc_html( sprintf( _x( 'Create a child theme from %s', 'The placeholder is for a theme\'s name', 'child-themify' ), $theme->name ) ); ?></h2>
|
72 |
|
73 |
<form method="post" action="<?php echo esc_url( $this->getLink( $theme ) ); ?>">
|
74 |
+
<label for="ctf_new_theme"><?php esc_html_e( 'Name your child theme', 'child-themify' ); ?></label><br>
|
75 |
+
<input type="text" name="new_theme" id="ctf_new_theme" />
|
76 |
<?php submit_button( __( "Let's go!", 'child-themify' ) ); ?>
|
77 |
</form>
|
78 |
</div>
|
97 |
}
|
98 |
if ( ! WP_Filesystem( $creds, get_theme_root() ) ) {
|
99 |
request_filesystem_credentials( $url, '', true, get_theme_root(), array( 'new_theme' ) );
|
100 |
+
|
101 |
return true;
|
102 |
}
|
103 |
$this->create( $_POST['new_theme'], $theme );
|
104 |
+
|
105 |
+
return false;
|
106 |
}
|
107 |
|
108 |
/**
|
123 |
'theme' => $theme->get_stylesheet(),
|
124 |
'_ctf_nonce' => $this->nonce( $theme ),
|
125 |
);
|
126 |
+
|
127 |
return add_query_arg( $args, $this->getBaseLink() );
|
128 |
}
|
129 |
|
155 |
return $links;
|
156 |
}
|
157 |
$link = $this->getLink( $theme );
|
158 |
+
$html = sprintf( '<a href="%s">%s</a>', esc_url( $link ), esc_html__( 'Create a child theme', 'child-themify' ) );
|
159 |
|
160 |
$links['child-themify'] = $html;
|
161 |
+
|
162 |
return $links;
|
163 |
}
|
164 |
|
173 |
* @throws Exception If the global filesystem object isn't available
|
174 |
*/
|
175 |
public function create( $new_theme, WP_Theme $template ) {
|
176 |
+
/** @var WP_Filesystem_Base $wp_filesystem */
|
177 |
global $wp_filesystem;
|
178 |
if ( ! ( $wp_filesystem instanceof WP_Filesystem_Base ) ) {
|
179 |
if ( ! WP_Filesystem() ) {
|
180 |
+
throw new Exception( esc_html__( 'Could not access the filesystem!', 'child-themify' ) );
|
181 |
}
|
182 |
}
|
183 |
$oldStylesheet = $template->get_stylesheet();
|
184 |
+
$templateDirectory = untrailingslashit( $template->get_stylesheet_directory() );
|
185 |
$oldName = $template->name;
|
186 |
$new_theme_directory = trailingslashit( get_theme_root() ) . sanitize_file_name( strtolower( $new_theme ) );
|
187 |
$wp_filesystem->mkdir( $new_theme_directory );
|
199 |
|
200 |
EOF;
|
201 |
$wp_filesystem->put_contents( $newStylesheet, $stylesheetContents );
|
202 |
+
if ( file_exists( "$templateDirectory/screenshot.png" ) ) {
|
203 |
+
$wp_filesystem->copy( "$templateDirectory/screenshot.png", "$new_theme_directory/screenshot.png" );
|
204 |
+
}
|
205 |
+
add_settings_error( '', 'child-themify', esc_html__( 'Your child theme was created successfully.', 'child-themify' ), 'updated' );
|
206 |
}
|
207 |
|
208 |
public function loadThemesPage() {
|
226 |
load_plugin_textdomain( 'child-themify', false, basename( dirname( __FILE__ ) ) . '/languages' );
|
227 |
add_filter( 'theme_action_links', array( $this, 'addActionLink' ), 10, 2 );
|
228 |
add_action( 'load-themes.php', array( $this, 'loadThemesPage' ) );
|
229 |
+
add_action( 'admin_footer-themes.php', array( $this, 'override_tmpl_theme_single' ) );
|
|
|
|
|
230 |
add_action( 'tmpl-theme-single_actions', array( $this, 'tmpl_theme_single_actions' ) );
|
231 |
add_filter( 'wp_prepare_themes_for_js', array( $this, 'prepare_themes' ) );
|
232 |
}
|
320 |
public function prepare_themes( $themes ) {
|
321 |
if ( $this->checkCapability() ) {
|
322 |
foreach ( $themes as $slug => $data ) {
|
323 |
+
$theme = wp_get_theme( $slug );
|
324 |
+
$link = $this->getLink( $theme );
|
325 |
|
326 |
+
$themes[ $slug ]['actions']['childThemify'] = $link ? $link : false;
|
327 |
}
|
328 |
}
|
329 |
+
|
330 |
return $themes;
|
331 |
}
|
332 |
|
languages/child-themify.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the Child Themify package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Child Themify 1.
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/
|
7 |
-
"POT-Creation-Date: 2014-12-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -16,88 +16,87 @@ msgstr ""
|
|
16 |
msgid "You do not have permission to do that!"
|
17 |
msgstr ""
|
18 |
|
19 |
-
#: includes/legacy.php:39 includes/plugin.php:
|
20 |
msgctxt "The placeholder is for a theme's name"
|
21 |
msgid "Create a child theme from %s"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#: includes/legacy.php:42 includes/plugin.php:
|
25 |
msgid "Name your child theme"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#: includes/legacy.php:44 includes/plugin.php:
|
29 |
msgid "Let's go!"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#: includes/legacy.php:
|
33 |
-
#: includes/plugin.php:
|
34 |
msgid "Create a child theme"
|
35 |
msgstr ""
|
36 |
|
37 |
-
#: includes/legacy.php:
|
38 |
msgid "Could not access the filesystem!"
|
39 |
msgstr ""
|
40 |
|
41 |
-
#: includes/legacy.php:
|
42 |
msgid "Your child theme was created successfully."
|
43 |
msgstr ""
|
44 |
|
45 |
-
#: includes/plugin.php:
|
46 |
msgid "Show previous theme"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: includes/plugin.php:
|
50 |
msgid "Show next theme"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: includes/plugin.php:
|
54 |
msgid "Close overlay"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: includes/plugin.php:
|
58 |
msgid "Current Theme"
|
59 |
msgstr ""
|
60 |
|
61 |
-
#: includes/plugin.php:
|
62 |
msgid "Version: %s"
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: includes/plugin.php:
|
66 |
msgid "By %s"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: includes/plugin.php:
|
70 |
msgid "Update Available"
|
71 |
msgstr ""
|
72 |
|
73 |
-
#: includes/plugin.php:
|
74 |
msgid "This is a child theme of %s."
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: includes/plugin.php:
|
78 |
msgid "Tags:"
|
79 |
msgstr ""
|
80 |
|
81 |
-
#: includes/plugin.php:
|
82 |
msgid "Customize"
|
83 |
msgstr ""
|
84 |
|
85 |
-
#: includes/plugin.php:
|
86 |
msgid "Activate"
|
87 |
msgstr ""
|
88 |
|
89 |
-
#: includes/plugin.php:
|
90 |
msgid "Live Preview"
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: includes/plugin.php:
|
94 |
msgid "Preview"
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: includes/plugin.php:
|
98 |
msgid "Delete"
|
99 |
msgstr ""
|
100 |
-
|
101 |
#. Plugin Name of the plugin/theme
|
102 |
msgid "Child Themify"
|
103 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Child Themify package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Child Themify 1.1\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/child-themify\n"
|
7 |
+
"POT-Creation-Date: 2014-12-20 17:08:52+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
16 |
msgid "You do not have permission to do that!"
|
17 |
msgstr ""
|
18 |
|
19 |
+
#: includes/legacy.php:39 includes/plugin.php:71
|
20 |
msgctxt "The placeholder is for a theme's name"
|
21 |
msgid "Create a child theme from %s"
|
22 |
msgstr ""
|
23 |
|
24 |
+
#: includes/legacy.php:42 includes/plugin.php:74
|
25 |
msgid "Name your child theme"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: includes/legacy.php:44 includes/plugin.php:76
|
29 |
msgid "Let's go!"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: includes/legacy.php:108 includes/legacy.php:178 includes/plugin.php:158
|
33 |
+
#: includes/plugin.php:314
|
34 |
msgid "Create a child theme"
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: includes/legacy.php:129 includes/plugin.php:180
|
38 |
msgid "Could not access the filesystem!"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: includes/legacy.php:154 includes/plugin.php:205
|
42 |
msgid "Your child theme was created successfully."
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: includes/plugin.php:246
|
46 |
msgid "Show previous theme"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: includes/plugin.php:247
|
50 |
msgid "Show next theme"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: includes/plugin.php:248
|
54 |
msgid "Close overlay"
|
55 |
msgstr ""
|
56 |
|
57 |
+
#: includes/plugin.php:263
|
58 |
msgid "Current Theme"
|
59 |
msgstr ""
|
60 |
|
61 |
+
#: includes/plugin.php:265
|
62 |
msgid "Version: %s"
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: includes/plugin.php:266
|
66 |
msgid "By %s"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: includes/plugin.php:270
|
70 |
msgid "Update Available"
|
71 |
msgstr ""
|
72 |
|
73 |
+
#: includes/plugin.php:277
|
74 |
msgid "This is a child theme of %s."
|
75 |
msgstr ""
|
76 |
|
77 |
+
#: includes/plugin.php:281
|
78 |
msgid "Tags:"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: includes/plugin.php:288
|
82 |
msgid "Customize"
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: includes/plugin.php:294
|
86 |
msgid "Activate"
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: includes/plugin.php:296
|
90 |
msgid "Live Preview"
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: includes/plugin.php:297
|
94 |
msgid "Preview"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: includes/plugin.php:302
|
98 |
msgid "Delete"
|
99 |
msgstr ""
|
|
|
100 |
#. Plugin Name of the plugin/theme
|
101 |
msgid "Child Themify"
|
102 |
msgstr ""
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: JohnPBloch
|
|
3 |
Tags: themes, child, theme
|
4 |
Requires at least: 3.4.2
|
5 |
Tested up to: 4.1.9
|
6 |
-
Stable tag: 1.
|
7 |
License: GPL-2.0+
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -23,7 +23,9 @@ This plugin is multisite compatible; if used on a multisite network, controls fo
|
|
23 |
|
24 |
== Frequently Asked Questions ==
|
25 |
|
26 |
-
|
|
|
|
|
27 |
|
28 |
== Screenshots ==
|
29 |
|
@@ -32,6 +34,11 @@ None yet.
|
|
32 |
|
33 |
== Changelog ==
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
= 1.0.4 =
|
36 |
* Released: 2014-09-15
|
37 |
* Added support for WordPress 4.0
|
@@ -55,5 +62,5 @@ None yet.
|
|
55 |
|
56 |
== Upgrade Notice ==
|
57 |
|
58 |
-
|
59 |
|
3 |
Tags: themes, child, theme
|
4 |
Requires at least: 3.4.2
|
5 |
Tested up to: 4.1.9
|
6 |
+
Stable tag: 1.1
|
7 |
License: GPL-2.0+
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
23 |
|
24 |
== Frequently Asked Questions ==
|
25 |
|
26 |
+
= Where can I get some help? =
|
27 |
+
|
28 |
+
I'd really prefer that you use [Github's issue tracker](https://github.com/johnpbloch/child-themify/issues/new). The [WordPress.org support forum for the plugin](https://wordpress.org/support/plugin/child-themify) will work too, it will just take longer.
|
29 |
|
30 |
== Screenshots ==
|
31 |
|
34 |
|
35 |
== Changelog ==
|
36 |
|
37 |
+
= 1.1.0 =
|
38 |
+
* Released: 2014-12-20
|
39 |
+
* Thumbnail now gets copied when you create a child theme
|
40 |
+
* Various other tweaks and security hardening
|
41 |
+
|
42 |
= 1.0.4 =
|
43 |
* Released: 2014-09-15
|
44 |
* Added support for WordPress 4.0
|
62 |
|
63 |
== Upgrade Notice ==
|
64 |
|
65 |
+
Minor release with tweaks and thumbnail support
|
66 |
|