Wordpress 편집기로 들어가면 템플릿 파일은 파일 이름순으로 정렬됩니다. 예를 들면 :워드 프레스 편집기에서 템플릿 순서 변경
404.php footer.php 전면 page.php ... .. page.php
가 "에 의해 정렬되도록 나는이 목록을 넣고 싶습니다 템플리트 파일 내에 정의 된 "템플리트 이름".
이것이 가능합니까?
Wordpress 편집기로 들어가면 템플릿 파일은 파일 이름순으로 정렬됩니다. 예를 들면 :워드 프레스 편집기에서 템플릿 순서 변경
404.php footer.php 전면 page.php ... .. page.php
가 "에 의해 정렬되도록 나는이 목록을 넣고 싶습니다 템플리트 파일 내에 정의 된 "템플리트 이름".
이것이 가능합니까?
죄송 합니다만, theme-editor.php 나 class-wp-theme.php에는 사용할 수있는 고리가 없으므로 파일 목록을 정렬 할 수 있습니다.
WordPress는 사용자 지정 검색 기능을 사용하여 파일을 가져온 다음 foreach 루프를 통해 간단히 인쇄합니다.
변경하려면 WordPress 관리 코어 파일을 수정해야하며 사용하지 않는 것이 좋습니다.
EDIT : WordPress 설치 내에서 약간의 수정만으로이 주문을 변경할 수 있습니다.
function adjust_the_wp_menu() {
remove_submenu_page('themes.php', 'theme-editor.php');
add_submenu_page('themes.php', _x('Editor', 'theme editor'), _x('Editor', 'theme editor'), 'edit_themes', 'my-theme-editor.php');
}
이 코드는 당신이를 만든 가정 : 당신은 관리자 및 광고 (WP - 관리자 디렉토리에있는) 사용자 지정 테마 - editor.php 또 다른 링크이 방법에서 기본 테마 편집기 메뉴를 제거하는 플러그인을 준비 할 수 있습니다 theme-editor.php와 똑같은 내용의 theme-editor.php (my-theme-editor.php)의 사본. 유일한 테마는 my-theme-editor.php 파일 내의 모든 "theme-editor.php"항목을 "my-theme-editor.php"로 바꾸는 것입니다.
편집기를 클릭하면 관리자 메뉴에서이 파일을 입력 할 때보 다 항상이 파일을 입력하게됩니다. 그리고 전체 파일이 당신 것이고 원하는 방식으로 주문을 변경하려고 할 수 있습니다. 그렇다면 올바른 방식으로 파일을 반복 처리해야합니다. 그렇게 어렵지는 않지만 PHP 파일에 추가되는 스타일 시트에도 attantion을 지불해야합니다 ...
그리고 현재, 나는 당신을 위해 my-theme-editor.php 파일을 준비했습니다;) 여기 있습니다 :
대체 문자열 "테마 editor.php"를 제외하고<?php
/**
* Theme editor administration panel.
*
* @package WordPress
* @subpackage Administration
*/
/** WordPress Administration Bootstrap */
require_once('./admin.php');
if (is_multisite() && ! is_network_admin()) {
wp_redirect(network_admin_url('my-theme-editor.php'));
exit();
}
if (!current_user_can('edit_themes'))
wp_die('<p>'.__('You do not have sufficient permissions to edit templates for this site.').'</p>');
$title = __("Edit Themes");
$parent_file = 'themes.php';
get_current_screen()->add_help_tab(array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'<p>' . __('You can use the Theme Editor to edit the individual CSS and PHP files which make up your theme.') . '</p>
<p>' . __('Begin by choosing a theme to edit from the dropdown menu and clicking Select. A list then appears of all the template files. Clicking once on any file name causes the file to appear in the large Editor box.') . '</p>
<p>' . __('For PHP files, you can use the Documentation dropdown to select from functions recognized in that file. Lookup takes you to a web page with reference material about that particular function.') . '</p>
<p id="newcontent-description">' . __('In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key.') . '</p>
<p>' . __('After typing in your edits, click Update File.') . '</p>
<p>' . __('<strong>Advice:</strong> think very carefully about your site crashing if you are live-editing the theme currently in use.') . '</p>
<p>' . __('Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a <a href="http://codex.wordpress.org/Child_Themes" target="_blank">child theme</a> instead.') . '</p>' .
(is_network_admin() ? '<p>' . __('Any edits to files from this screen will be reflected on all sites in the network.') . '</p>' : '')
));
get_current_screen()->set_help_sidebar(
'<p><strong>' . __('For more information:') . '</strong></p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Theme_Development" target="_blank">Documentation on Theme Development</a>') . '</p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Using_Themes" target="_blank">Documentation on Using Themes</a>') . '</p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Editing_Files" target="_blank">Documentation on Editing Files</a>') . '</p>' .
'<p>' . __('<a href="http://codex.wordpress.org/Template_Tags" target="_blank">Documentation on Template Tags</a>') . '</p>' .
'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
);
wp_reset_vars(array('action', 'error', 'file', 'theme'));
if ($theme)
$stylesheet = $theme;
else
$stylesheet = get_stylesheet();
$theme = wp_get_theme($stylesheet);
if (! $theme->exists())
wp_die(__('The requested theme does not exist.'));
if ($theme->errors() && 'theme_no_stylesheet' == $theme->errors()->get_error_code())
wp_die(__('The requested theme does not exist.') . ' ' . $theme->errors()->get_error_message());
$allowed_files = $theme->get_files('php', 1);
//BINDA: Copy allowed files before stylesheets are added to your own varible to be able to sort templates without stylesheets
$myallowed_files = $allowed_files;
$has_templates = ! empty($allowed_files);
$style_files = $theme->get_files('css');
$allowed_files['style.css'] = $style_files['style.css'];
$allowed_files += $style_files;
if (empty($file)) {
$relative_file = 'style.css';
$file = $allowed_files['style.css'];
} else {
$relative_file = stripslashes($file);
$file = $theme->get_stylesheet_directory() . '/' . $relative_file;
}
validate_file_to_edit($file, $allowed_files);
$scrollto = isset($_REQUEST['scrollto']) ? (int) $_REQUEST['scrollto'] : 0;
switch($action) {
case 'update':
check_admin_referer('edit-theme_' . $file . $stylesheet);
$newcontent = stripslashes($_POST['newcontent']);
$location = 'my-theme-editor.php?file=' . urlencode($relative_file) . '&theme=' . urlencode($stylesheet) . '&scrollto=' . $scrollto;
if (is_writeable($file)) {
//is_writable() not always reliable, check return value. see comments @ http://uk.php.net/is_writable
$f = fopen($file, 'w+');
if ($f !== false) {
fwrite($f, $newcontent);
fclose($f);
$location .= '&updated=true';
$theme->cache_delete();
}
}
wp_redirect($location);
exit;
break;
default:
require_once(ABSPATH . 'wp-admin/admin-header.php');
update_recently_edited($file);
if (! is_file($file))
$error = true;
$content = '';
if (! $error && filesize($file) > 0) {
$f = fopen($file, 'r');
$content = fread($f, filesize($file));
if ('.php' == substr($file, strrpos($file, '.'))) {
$functions = wp_doc_link_parse($content);
$docs_select = '<select name="docs-list" id="docs-list">';
$docs_select .= '<option value="">' . esc_attr__('Function Name...') . '</option>';
foreach ($functions as $function) {
$docs_select .= '<option value="' . esc_attr(urlencode($function)) . '">' . htmlspecialchars($function) . '()</option>';
}
$docs_select .= '</select>';
}
$content = esc_textarea($content);
}
?>
<?php if (isset($_GET['updated'])) : ?>
<div id="message" class="updated"><p><?php _e('File edited successfully.') ?></p></div>
<?php endif;
$description = get_file_description($file);
$file_show = array_search($file, array_filter($allowed_files));
if ($description != $file_show)
$description .= ' <span>(' . $file_show . ')</span>';
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php echo esc_html($title); ?></h2>
<div class="fileedit-sub">
<div class="alignleft">
<h3><?php echo $theme->display('Name'); if ($description) echo ': ' . $description; ?></h3>
</div>
<div class="alignright">
<form action="my-theme-editor.php" method="post">
<strong><label for="theme"><?php _e('Select theme to edit:'); ?> </label></strong>
<select name="theme" id="theme">
<?php
foreach (wp_get_themes(array('errors' => null)) as $a_stylesheet => $a_theme) {
if ($a_theme->errors() && 'theme_no_stylesheet' == $a_theme->errors()->get_error_code())
continue;
$selected = $a_stylesheet == $stylesheet ? ' selected="selected"' : '';
echo "\n\t" . '<option value="' . esc_attr($a_stylesheet) . '"' . $selected . '>' . $a_theme->display('Name') . '</option>';
}
?>
</select>
<?php submit_button(__('Select'), 'button', 'Submit', false); ?>
</form>
</div>
<br class="clear" />
</div>
<?php
if ($theme->errors())
echo '<div class="error"><p><strong>' . __('This theme is broken.') . '</strong> ' . $theme->errors()->get_error_message() . '</p></div>';
?>
<div id="templateside">
<?php
if ($allowed_files) :
if ($has_templates || $theme->parent()) :
?>
<h3><?php _e('Templates'); ?></h3>
<?php if ($theme->parent()) : ?>
<p class="howto"><?php printf(__('This child theme inherits templates from a parent theme, %s.'), '<a href="' . self_admin_url('my-theme-editor.php?theme=' . urlencode($theme->get_template())) . '">' . $theme->parent()->display('Name') . '</a>'); ?></p>
<?php endif; ?>
<ul>
<?php
endif;
//Loop throught myallowed files (copied abowe) and replace cutom page templates key
foreach ($myallowed_files as $file => $full_path) {
if (! preg_match('|Template Name:(.*)$|mi', file_get_contents($full_path), $header))
continue;
unset($myallowed_files[ $file ]);
$myallowed_files[ strtolower(_cleanup_header_comment($header[1])) ] = $full_path;
}
//Sort by key
ksort($myallowed_files);
//Add stylesheets
$style_files = $theme->get_files('css');
$myallowed_files['style.css'] = $style_files['style.css'];
$myallowed_files += $style_files;
//Loop myallowed files in desired order
foreach ($myallowed_files as $filename => $absolute_filename) :
if ('style.css' == $filename)
echo "\t</ul>\n\t<h3>" . _x('Styles', 'Theme stylesheets in theme editor') . "</h3>\n\t<ul>\n";
$file_description = get_file_description($absolute_filename);
if ($file_description != basename($filename))
$file_description .= '<br /><span class="nonessential">(' . $filename . ')</span>';
if ($absolute_filename == $file)
$file_description = '<span class="highlight">' . $file_description . '</span>';
?>
<li><a href="my-theme-editor.php?file=<?php echo urlencode($filename) ?>&theme=<?php echo urlencode($stylesheet) ?>"><?php echo $file_description; ?></a></li>
<?php
endforeach;
?>
</ul>
<?php endif; ?>
</div>
<?php if ($error) :
echo '<div class="error"><p>' . __('Oops, no such file exists! Double check the name and try again, merci.') . '</p></div>';
else : ?>
<form name="template" id="template" action="my-theme-editor.php" method="post">
<?php wp_nonce_field('edit-theme_' . $file . $stylesheet); ?>
<div><textarea cols="70" rows="30" name="newcontent" id="newcontent" aria-describedby="newcontent-description"><?php echo $content; ?></textarea>
<input type="hidden" name="action" value="update" />
<input type="hidden" name="file" value="<?php echo esc_attr($relative_file); ?>" />
<input type="hidden" name="theme" value="<?php echo esc_attr($theme->get_stylesheet()); ?>" />
<input type="hidden" name="scrollto" id="scrollto" value="<?php echo $scrollto; ?>" />
</div>
<?php if (! empty($functions)) : ?>
<div id="documentation" class="hide-if-no-js">
<label for="docs-list"><?php _e('Documentation:') ?></label>
<?php echo $docs_select; ?>
<input type="button" class="button" value=" <?php esc_attr_e('Lookup'); ?> " onclick="if ('' != jQuery('#docs-list').val()) { window.open('http://api.wordpress.org/core/handbook/1.0/?function=' + escape(jQuery('#docs-list').val()) + '&locale=<?php echo urlencode(get_locale()) ?>&version=<?php echo urlencode($wp_version) ?>&redirect=true'); }" />
</div>
<?php endif; ?>
<div>
<?php if (is_child_theme() && $theme->get_stylesheet() == get_template()) : ?>
<p><?php if (is_writeable($file)) { ?><strong><?php _e('Caution:'); ?></strong><?php } ?>
<?php _e('This is a file in your current parent theme.'); ?></p>
<?php endif; ?>
<?php
if (is_writeable($file)) :
submit_button(__('Update File'), 'primary', 'submit', true);
else : ?>
<p><em><?php _e('You need to make this file writable before you can save your changes. See <a href="http://codex.wordpress.org/Changing_File_Permissions">the Codex</a> for more information.'); ?></em></p>
<?php endif; ?>
</div>
</form>
<?php
endif; // $error
?>
<br class="clear" />
</div>
<script type="text/javascript">
/* <![CDATA[ */
jQuery(document).ready(function($){
$('#template').submit(function(){ $('#scrollto').val($('#newcontent').scrollTop()); });
$('#newcontent').scrollTop($('#scrollto').val());
});
/* ]]> */
</script>
<?php
break;
}
include(ABSPATH . 'wp-admin/admin-footer.php');
는 "내-테마 editor.php"은 라인 (62)에서와보다 더 변화가, 라인 (180)
그러나에, 하나 확장하기 주의 깊게 사용하십시오. 제대로 테스트하지는 않았지만 제대로 작동하는 것 같습니다. 펀치 라인은, 당신이 플러그인 메뉴를 제거하고 my-theme-editor.php에 대한 링크로 바꾸면 my-theme-editor.php 파일이 새로운 버전으로 대체되지 않는다는 것입니다. 워드 프레스. 그리고 그것이 제거되면, 당신은 단순히 그것을 다시 복사 할 수 있습니다.