Version Description
- Released: 2014-04-15
- Standardized theme action links shim. See https://github.com/johnpbloch/child-themify/issues/2 for more information
- Maintenance, code cleanup, bug fixes
Download this release
Release Info
Developer | JohnPBloch |
Plugin | Child Themify |
Version | 1.0.3 |
Comparing to | |
See all releases |
Code changes from version 1.0.2 to 1.0.3
- assets/js/child-themify.js +0 -78
- assets/js/child-themify.min.js +0 -2
- assets/js/legacy.js +2 -0
- assets/js/legacy.min.js +3 -2
- child-themify.php +4 -4
- includes/plugin.php +120 -26
- languages/child-themify.pot +70 -15
- readme.txt +14 -9
assets/js/child-themify.js
DELETED
@@ -1,78 +0,0 @@
|
|
1 |
-
(function (window, l10n, undefined) {
|
2 |
-
var $ = window.jQuery,
|
3 |
-
themes = window.wp.themes,
|
4 |
-
themesView,
|
5 |
-
themeViews = {};
|
6 |
-
|
7 |
-
function createUrl(theme) {
|
8 |
-
var link = window.location.href;
|
9 |
-
if (link.indexOf('?')) {
|
10 |
-
link = link.substr(0, link.indexOf('?'));
|
11 |
-
}
|
12 |
-
link += '?action=child-themify';
|
13 |
-
link += '&theme=' + theme;
|
14 |
-
link += '&_ctf_nonce=' + l10n.nonce;
|
15 |
-
|
16 |
-
return link;
|
17 |
-
}
|
18 |
-
|
19 |
-
function injectLinks(into, model) {
|
20 |
-
if (model.get('parent')) {
|
21 |
-
return;
|
22 |
-
}
|
23 |
-
var className = '.theme-actions .' + (model.get('active') ? '' : 'in') + 'active-theme',
|
24 |
-
links = into.find(className),
|
25 |
-
link = createUrl(model.id);
|
26 |
-
if (links.length) {
|
27 |
-
links.first().append('<a href="' + link + '" class="button button-secondary">' +
|
28 |
-
l10n.createAChildTheme +
|
29 |
-
'</a>');
|
30 |
-
}
|
31 |
-
}
|
32 |
-
|
33 |
-
function onExpand() {
|
34 |
-
window.setTimeout(function () {
|
35 |
-
injectLinks(themesView.overlay.$el, themesView.model);
|
36 |
-
}, 30);
|
37 |
-
}
|
38 |
-
|
39 |
-
function initialize() {
|
40 |
-
var index,
|
41 |
-
obj,
|
42 |
-
listeners = themesView._listeners,
|
43 |
-
count = 0;
|
44 |
-
for (index in listeners) {
|
45 |
-
if (listeners.hasOwnProperty(index)) {
|
46 |
-
obj = listeners[index];
|
47 |
-
if (obj instanceof themes.view.Theme) {
|
48 |
-
themeViews[obj.model.id] = obj;
|
49 |
-
count += 1;
|
50 |
-
}
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
if (count === 1) {
|
55 |
-
injectLinks(themesView.singleTheme.$el, themesView.model);
|
56 |
-
} else if (count > 0) {
|
57 |
-
for (index in themeViews) {
|
58 |
-
if (themeViews.hasOwnProperty(index)) {
|
59 |
-
themesView.listenTo(themeViews[index], 'theme:expand', onExpand);
|
60 |
-
}
|
61 |
-
}
|
62 |
-
}
|
63 |
-
}
|
64 |
-
|
65 |
-
function onLoad() {
|
66 |
-
themesView = themes.Run.view.view;
|
67 |
-
|
68 |
-
initialize();
|
69 |
-
|
70 |
-
if (undefined !== themes.data.settings.theme && '' !== themes.data.settings.theme) {
|
71 |
-
injectLinks(themesView.overlay.$el, themesView.model);
|
72 |
-
}
|
73 |
-
|
74 |
-
themesView.listenTo(themesView.collection, 'update', initialize);
|
75 |
-
}
|
76 |
-
|
77 |
-
$(onLoad);
|
78 |
-
}(window, window.childThemify));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assets/js/child-themify.min.js
DELETED
@@ -1,2 +0,0 @@
|
|
1 |
-
/*! Child Themify - v1.0.2
|
2 |
-
* Copyright (c) 2014 John P. Bloch */!function(a,b,c){function d(c){var d=a.location.href;return d.indexOf("?")&&(d=d.substr(0,d.indexOf("?"))),d+="?action=child-themify",d+="&theme="+c,d+="&_ctf_nonce="+b.nonce}function e(a,c){if(!c.get("parent")){var e=".theme-actions ."+(c.get("active")?"":"in")+"active-theme",f=a.find(e),g=d(c.id);f.length&&f.first().append('<a href="'+g+'" class="button button-secondary">'+b.createAChildTheme+"</a>")}}function f(){a.setTimeout(function(){e(i.overlay.$el,i.model)},30)}function g(){var a,b,c=i._listeners,d=0;for(a in c)c.hasOwnProperty(a)&&(b=c[a],b instanceof k.view.Theme&&(l[b.model.id]=b,d+=1));if(1===d)e(i.singleTheme.$el,i.model);else if(d>0)for(a in l)l.hasOwnProperty(a)&&i.listenTo(l[a],"theme:expand",f)}function h(){i=k.Run.view.view,g(),c!==k.data.settings.theme&&""!==k.data.settings.theme&&e(i.overlay.$el,i.model),i.listenTo(i.collection,"update",g)}var i,j=a.jQuery,k=a.wp.themes,l={};j(h)}(window,window.childThemify);
|
|
|
|
assets/js/legacy.js
CHANGED
@@ -1,3 +1,5 @@
|
|
|
|
|
|
1 |
(function (window, l10n) {
|
2 |
if (typeof l10n.link !== 'string' || l10n.link.length < 1) {
|
3 |
return;
|
1 |
+
/*! Child Themify - v1.0.3
|
2 |
+
* Copyright (c) 2014 John P. Bloch */
|
3 |
(function (window, l10n) {
|
4 |
if (typeof l10n.link !== 'string' || l10n.link.length < 1) {
|
5 |
return;
|
assets/js/legacy.min.js
CHANGED
@@ -1,2 +1,3 @@
|
|
1 |
-
/*! Child Themify - v1.0.
|
2 |
-
* Copyright (c) 2014 John P. Bloch
|
|
1 |
+
/*! Child Themify - v1.0.3
|
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
@@ -1,16 +1,16 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
* Plugin Name: Child Themify
|
4 |
-
* Description:
|
5 |
-
* Version: 1.0.
|
6 |
* Plugin URI: https://github.com/johnpbloch/child-themify
|
7 |
* Author: John P. Bloch
|
8 |
-
* License:
|
9 |
*/
|
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.0.
|
14 |
|
15 |
|
16 |
function ctf_plugins_loaded() {
|
1 |
<?php
|
2 |
/*
|
3 |
* Plugin Name: Child Themify
|
4 |
+
* Description: Create child themes at the click of a button.
|
5 |
+
* Version: 1.0.3
|
6 |
* Plugin URI: https://github.com/johnpbloch/child-themify
|
7 |
* Author: John P. Bloch
|
8 |
+
* License: GPL-2.0+
|
9 |
*/
|
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.0.3' );
|
14 |
|
15 |
|
16 |
function ctf_plugins_loaded() {
|
includes/plugin.php
CHANGED
@@ -30,17 +30,25 @@ class Child_Themify {
|
|
30 |
}
|
31 |
|
32 |
/**
|
|
|
|
|
33 |
* @return string
|
34 |
*/
|
35 |
-
public function nonce() {
|
36 |
-
return wp_create_nonce( $this->nonceName() );
|
37 |
}
|
38 |
|
39 |
/**
|
|
|
|
|
40 |
* @return string
|
41 |
*/
|
42 |
-
public function nonceName() {
|
43 |
-
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
public function showInterface() {
|
@@ -187,16 +195,12 @@ EOF;
|
|
187 |
}
|
188 |
|
189 |
public function loadThemesPage() {
|
190 |
-
if (
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
}
|
196 |
-
$this->loadFile( ABSPATH . 'wp-admin/admin-header.php' );
|
197 |
-
$this->showInterface();
|
198 |
-
$this->loadFile( ABSPATH . 'wp-admin/admin-footer.php' );
|
199 |
-
exit;
|
200 |
}
|
201 |
|
202 |
public function loadFile( $file ) {
|
@@ -207,23 +211,113 @@ EOF;
|
|
207 |
return ( ! empty( $_GET['action'] ) && $_GET['action'] === 'child-themify' );
|
208 |
}
|
209 |
|
210 |
-
public function linkThemes() {
|
211 |
-
if ( ! $this->checkCapability() ) {
|
212 |
-
return;
|
213 |
-
}
|
214 |
-
$js = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? 'js' : 'min.js';
|
215 |
-
$filename = "assets/js/child-themify.$js";
|
216 |
-
wp_enqueue_script( 'child-themify', plugins_url( $filename, CTF_PATH ), array( 'theme' ), CTF_VERSION, true );
|
217 |
-
wp_localize_script( 'child-themify', 'childThemify', array(
|
218 |
-
'createAChildTheme' => __( 'Create a child theme', 'child-themify' ),
|
219 |
-
'nonce' => $this->nonce(),
|
220 |
-
) );
|
221 |
-
}
|
222 |
-
|
223 |
public function init() {
|
224 |
load_plugin_textdomain( 'child-themify', false, basename( dirname( __FILE__ ) ) . '/languages' );
|
225 |
add_filter( 'theme_action_links', array( $this, 'addActionLink' ), 10, 2 );
|
226 |
add_action( 'load-themes.php', array( $this, 'loadThemesPage' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
}
|
228 |
|
229 |
}
|
30 |
}
|
31 |
|
32 |
/**
|
33 |
+
* @param WP_Theme $theme
|
34 |
+
*
|
35 |
* @return string
|
36 |
*/
|
37 |
+
public function nonce( WP_Theme $theme = null ) {
|
38 |
+
return wp_create_nonce( $this->nonceName( $theme ) );
|
39 |
}
|
40 |
|
41 |
/**
|
42 |
+
* @param WP_Theme $theme
|
43 |
+
*
|
44 |
* @return string
|
45 |
*/
|
46 |
+
public function nonceName( WP_Theme $theme = null ) {
|
47 |
+
$nonce_name = 'child_themify';
|
48 |
+
if ( $theme ) {
|
49 |
+
$nonce_name .= '_' . $theme->get_stylesheet();
|
50 |
+
}
|
51 |
+
return $nonce_name;
|
52 |
}
|
53 |
|
54 |
public function showInterface() {
|
195 |
}
|
196 |
|
197 |
public function loadThemesPage() {
|
198 |
+
if ( $this->isChildThemifyPage() ) {
|
199 |
+
$this->loadFile( ABSPATH . 'wp-admin/admin-header.php' );
|
200 |
+
$this->showInterface();
|
201 |
+
$this->loadFile( ABSPATH . 'wp-admin/admin-footer.php' );
|
202 |
+
exit;
|
203 |
}
|
|
|
|
|
|
|
|
|
204 |
}
|
205 |
|
206 |
public function loadFile( $file ) {
|
211 |
return ( ! empty( $_GET['action'] ) && $_GET['action'] === 'child-themify' );
|
212 |
}
|
213 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
214 |
public function init() {
|
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 |
+
if ( version_compare( $GLOBALS['wp_version'], '3.9.9', '<' ) ) {
|
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 |
+
}
|
224 |
+
|
225 |
+
public function override_tmpl_theme_single() {
|
226 |
+
?>
|
227 |
+
<script>
|
228 |
+
var tts = document.getElementById('tmpl-theme-single');
|
229 |
+
if (tts.parentNode) {
|
230 |
+
tts.parentNode.removeChild(tts);
|
231 |
+
}
|
232 |
+
</script>
|
233 |
+
<script id="tmpl-theme-single" type="text/template">
|
234 |
+
<div class="theme-backdrop"></div>
|
235 |
+
<div class="theme-wrap">
|
236 |
+
<div class="theme-header">
|
237 |
+
<button class="left dashicons dashicons-no"><span class="screen-reader-text"><?php _e( 'Show previous theme' ); ?></span></button>
|
238 |
+
<button class="right dashicons dashicons-no"><span class="screen-reader-text"><?php _e( 'Show next theme' ); ?></span></button>
|
239 |
+
<button class="close dashicons dashicons-no"><span class="screen-reader-text"><?php _e( 'Close overlay' ); ?></span></button>
|
240 |
+
</div>
|
241 |
+
<div class="theme-about">
|
242 |
+
<div class="theme-screenshots">
|
243 |
+
<# if ( data.screenshot[0] ) { #>
|
244 |
+
<div class="screenshot">
|
245 |
+
<img src="{{ data.screenshot[0] }}" alt="" />
|
246 |
+
</div>
|
247 |
+
<# } else { #>
|
248 |
+
<div class="screenshot blank"></div>
|
249 |
+
<# } #>
|
250 |
+
</div>
|
251 |
+
|
252 |
+
<div class="theme-info">
|
253 |
+
<# if ( data.active ) { #>
|
254 |
+
<span class="current-label"><?php _e( 'Current Theme' ); ?></span>
|
255 |
+
<# } #>
|
256 |
+
<h3 class="theme-name">{{{ data.name }}}<span class="theme-version"><?php printf( __( 'Version: %s' ), '{{{ data.version }}}' ); ?></span></h3>
|
257 |
+
<h4 class="theme-author"><?php printf( __( 'By %s' ), '{{{ data.authorAndUri }}}' ); ?></h4>
|
258 |
+
|
259 |
+
<# if ( data.hasUpdate ) { #>
|
260 |
+
<div class="theme-update-message">
|
261 |
+
<h4 class="theme-update"><?php _e( 'Update Available' ); ?></h4>
|
262 |
+
{{{ data.update }}}
|
263 |
+
</div>
|
264 |
+
<# } #>
|
265 |
+
<p class="theme-description">{{{ data.description }}}</p>
|
266 |
+
|
267 |
+
<# if ( data.parent ) { #>
|
268 |
+
<p class="parent-theme"><?php printf( __( 'This is a child theme of %s.' ), '<strong>{{{ data.parent }}}</strong>' ); ?></p>
|
269 |
+
<# } #>
|
270 |
+
|
271 |
+
<# if ( data.tags ) { #>
|
272 |
+
<p class="theme-tags"><span><?php _e( 'Tags:' ); ?></span> {{{ data.tags }}}</p>
|
273 |
+
<# } #>
|
274 |
+
</div>
|
275 |
+
</div>
|
276 |
+
|
277 |
+
<div class="theme-actions">
|
278 |
+
<div class="active-theme">
|
279 |
+
<a href="{{{ data.actions.customize }}}" class="button button-primary customize load-customize hide-if-no-customize"><?php _e( 'Customize' ); ?></a>
|
280 |
+
<?php echo implode( ' ', $GLOBALS['current_theme_actions'] ); ?>
|
281 |
+
<?php do_action( 'tmpl-theme-single_actions', 'active' ); ?>
|
282 |
+
</div>
|
283 |
+
<div class="inactive-theme">
|
284 |
+
<# if ( data.actions.activate ) { #>
|
285 |
+
<a href="{{{ data.actions.activate }}}" class="button button-primary activate"><?php _e( 'Activate' ); ?></a>
|
286 |
+
<# } #>
|
287 |
+
<a href="{{{ data.actions.customize }}}" class="button button-secondary load-customize hide-if-no-customize"><?php _e( 'Live Preview' ); ?></a>
|
288 |
+
<a href="{{{ data.actions.preview }}}" class="button button-secondary hide-if-customize"><?php _e( 'Preview' ); ?></a>
|
289 |
+
<?php do_action( 'tmpl-theme-single_actions', 'inactive' ); ?>
|
290 |
+
</div>
|
291 |
+
|
292 |
+
<# if ( ! data.active && data.actions['delete'] ) { #>
|
293 |
+
<a href="{{{ data.actions['delete'] }}}" class="button button-secondary delete-theme"><?php _e( 'Delete' ); ?></a>
|
294 |
+
<# } #>
|
295 |
+
</div>
|
296 |
+
</div>
|
297 |
+
</script>
|
298 |
+
<?php
|
299 |
+
// End single theme template shim
|
300 |
+
}
|
301 |
+
|
302 |
+
public function tmpl_theme_single_actions() {
|
303 |
+
?>
|
304 |
+
<# if ( data.actions.childThemify ) { #>
|
305 |
+
<a href="{{{ data.actions.childThemify }}}" class="button button-secondary" title="<?php esc_attr_e( 'Create a child theme', 'child-themify' ); ?>"><?php esc_attr_e( 'Create a child theme', 'child-themify' ); ?></a>
|
306 |
+
<# } #>
|
307 |
+
<?php
|
308 |
+
// End single action for CTF
|
309 |
+
}
|
310 |
+
|
311 |
+
public function prepare_themes( $themes ) {
|
312 |
+
if ( $this->checkCapability() ) {
|
313 |
+
foreach ( $themes as $slug => $data ) {
|
314 |
+
$theme = wp_get_theme( $slug );
|
315 |
+
$download_link = $this->getLink( $theme );
|
316 |
+
|
317 |
+
$themes[$slug]['actions']['childThemify'] = $download_link ? $download_link : false;
|
318 |
+
}
|
319 |
+
}
|
320 |
+
return $themes;
|
321 |
}
|
322 |
|
323 |
}
|
languages/child-themify.pot
CHANGED
@@ -1,46 +1,103 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the Child Themify package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Child Themify 0.
|
6 |
-
"Report-Msgid-Bugs-To: http://wordpress.org/
|
7 |
-
"POT-Creation-Date:
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date:
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
-
#:
|
16 |
msgid "You do not have permission to do that!"
|
17 |
msgstr ""
|
18 |
|
19 |
-
#:
|
20 |
msgctxt "The placeholder is for a theme's name"
|
21 |
msgid "Create a child theme from %s"
|
22 |
msgstr ""
|
23 |
|
24 |
-
#:
|
25 |
msgid "Name your child theme"
|
26 |
msgstr ""
|
27 |
|
28 |
-
#:
|
29 |
msgid "Let's go!"
|
30 |
msgstr ""
|
31 |
|
32 |
-
#:
|
|
|
33 |
msgid "Create a child theme"
|
34 |
msgstr ""
|
35 |
|
36 |
-
#:
|
37 |
msgid "Could not access the filesystem!"
|
38 |
msgstr ""
|
39 |
|
40 |
-
#:
|
41 |
msgid "Your child theme was created successfully."
|
42 |
msgstr ""
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
#. Plugin Name of the plugin/theme
|
45 |
msgid "Child Themify"
|
46 |
msgstr ""
|
@@ -50,9 +107,7 @@ msgid "https://github.com/johnpbloch/child-themify"
|
|
50 |
msgstr ""
|
51 |
|
52 |
#. Description of the plugin/theme
|
53 |
-
msgid ""
|
54 |
-
"Enables the quick creation of child themes from any non-child theme you have "
|
55 |
-
"installed."
|
56 |
msgstr ""
|
57 |
|
58 |
#. Author of the plugin/theme
|
1 |
+
# Copyright (C) 2014 Child Themify
|
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.0.3\n"
|
6 |
+
"Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/child-themify\n"
|
7 |
+
"POT-Creation-Date: 2014-04-15 15:22:30+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2014-MO-DA HO:MI+ZONE\n"
|
12 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14 |
|
15 |
+
#: includes/legacy.php:13 includes/plugin.php:14
|
16 |
msgid "You do not have permission to do that!"
|
17 |
msgstr ""
|
18 |
|
19 |
+
#: includes/legacy.php:39 includes/plugin.php:70
|
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:73
|
25 |
msgid "Name your child theme"
|
26 |
msgstr ""
|
27 |
|
28 |
+
#: includes/legacy.php:44 includes/plugin.php:75
|
29 |
msgid "Let's go!"
|
30 |
msgstr ""
|
31 |
|
32 |
+
#: includes/legacy.php:106 includes/legacy.php:169 includes/plugin.php:153
|
33 |
+
#: includes/plugin.php:305
|
34 |
msgid "Create a child theme"
|
35 |
msgstr ""
|
36 |
|
37 |
+
#: includes/legacy.php:125 includes/plugin.php:173
|
38 |
msgid "Could not access the filesystem!"
|
39 |
msgstr ""
|
40 |
|
41 |
+
#: includes/legacy.php:146 includes/plugin.php:194
|
42 |
msgid "Your child theme was created successfully."
|
43 |
msgstr ""
|
44 |
|
45 |
+
#: includes/plugin.php:237
|
46 |
+
msgid "Show previous theme"
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#: includes/plugin.php:238
|
50 |
+
msgid "Show next theme"
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: includes/plugin.php:239
|
54 |
+
msgid "Close overlay"
|
55 |
+
msgstr ""
|
56 |
+
|
57 |
+
#: includes/plugin.php:254
|
58 |
+
msgid "Current Theme"
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: includes/plugin.php:256
|
62 |
+
msgid "Version: %s"
|
63 |
+
msgstr ""
|
64 |
+
|
65 |
+
#: includes/plugin.php:257
|
66 |
+
msgid "By %s"
|
67 |
+
msgstr ""
|
68 |
+
|
69 |
+
#: includes/plugin.php:261
|
70 |
+
msgid "Update Available"
|
71 |
+
msgstr ""
|
72 |
+
|
73 |
+
#: includes/plugin.php:268
|
74 |
+
msgid "This is a child theme of %s."
|
75 |
+
msgstr ""
|
76 |
+
|
77 |
+
#: includes/plugin.php:272
|
78 |
+
msgid "Tags:"
|
79 |
+
msgstr ""
|
80 |
+
|
81 |
+
#: includes/plugin.php:279
|
82 |
+
msgid "Customize"
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: includes/plugin.php:285
|
86 |
+
msgid "Activate"
|
87 |
+
msgstr ""
|
88 |
+
|
89 |
+
#: includes/plugin.php:287
|
90 |
+
msgid "Live Preview"
|
91 |
+
msgstr ""
|
92 |
+
|
93 |
+
#: includes/plugin.php:288
|
94 |
+
msgid "Preview"
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
#: includes/plugin.php:293
|
98 |
+
msgid "Delete"
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
#. Plugin Name of the plugin/theme
|
102 |
msgid "Child Themify"
|
103 |
msgstr ""
|
107 |
msgstr ""
|
108 |
|
109 |
#. Description of the plugin/theme
|
110 |
+
msgid "Create child themes at the click of a button."
|
|
|
|
|
111 |
msgstr ""
|
112 |
|
113 |
#. Author of the plugin/theme
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
Contributors: JohnPBloch
|
3 |
Tags: themes, child, theme
|
4 |
Requires at least: 3.4.2
|
5 |
-
Tested up to: 3.
|
6 |
-
Stable tag: 1.0.
|
7 |
-
License:
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
Create child themes at the click of a button.
|
@@ -18,8 +18,8 @@ This plugin is multisite compatible; if used on a multisite network, controls fo
|
|
18 |
== Installation ==
|
19 |
|
20 |
1. Upload the `child-themify` directory and its contents to the `/wp-content/plugins/` directory (or your custom location if you manually changed the location).
|
21 |
-
|
22 |
-
|
23 |
|
24 |
== Frequently Asked Questions ==
|
25 |
|
@@ -32,19 +32,24 @@ None yet.
|
|
32 |
|
33 |
== Changelog ==
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
= 1.0.2 =
|
|
|
36 |
* Added support for WP 3.8
|
37 |
|
38 |
= 1.0.1 =
|
|
|
39 |
* Add a semicolon to the end of the @import line in the stylesheet. Props to Luis Alejandre (wpthemedetector.com) for finding and solving.
|
40 |
|
41 |
= 1.0 =
|
|
|
42 |
* Initial Release
|
43 |
|
44 |
== Upgrade Notice ==
|
45 |
|
46 |
-
|
47 |
-
This version fixes the plugin in WordPress 3.8
|
48 |
|
49 |
-
= 1.0.1 =
|
50 |
-
This version fixes a bug that will prevent some users' css from taking effect in new child themes.
|
2 |
Contributors: JohnPBloch
|
3 |
Tags: themes, child, theme
|
4 |
Requires at least: 3.4.2
|
5 |
+
Tested up to: 3.9
|
6 |
+
Stable tag: 1.0.3
|
7 |
+
License: GPL-2.0+
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
10 |
Create child themes at the click of a button.
|
18 |
== Installation ==
|
19 |
|
20 |
1. Upload the `child-themify` directory and its contents to the `/wp-content/plugins/` directory (or your custom location if you manually changed the location).
|
21 |
+
2. Activate the plugin through the 'Plugins' menu in WordPress
|
22 |
+
3. You can now create a child theme of any non-child theme you have installed by going to the themes page and clicking "Create a child theme" from the actions links of the theme of your choice.
|
23 |
|
24 |
== Frequently Asked Questions ==
|
25 |
|
32 |
|
33 |
== Changelog ==
|
34 |
|
35 |
+
= 1.0.3 =
|
36 |
+
* Released: 2014-04-15
|
37 |
+
* Standardized theme action links shim. See https://github.com/johnpbloch/child-themify/issues/2 for more information
|
38 |
+
* Maintenance, code cleanup, bug fixes
|
39 |
+
|
40 |
= 1.0.2 =
|
41 |
+
* Released: 2014-01-13
|
42 |
* Added support for WP 3.8
|
43 |
|
44 |
= 1.0.1 =
|
45 |
+
* Released: 2013-01-18
|
46 |
* Add a semicolon to the end of the @import line in the stylesheet. Props to Luis Alejandre (wpthemedetector.com) for finding and solving.
|
47 |
|
48 |
= 1.0 =
|
49 |
+
* Released: 2012-12-31
|
50 |
* Initial Release
|
51 |
|
52 |
== Upgrade Notice ==
|
53 |
|
54 |
+
This version cleans up 3.8+ compatibility and ensures 3.9 compatibility
|
|
|
55 |
|
|
|
|