我是 Wordpress 的新手,需要一些帮助。
我想要做的是我已经创建了一个 Wordpress 帐户,现在我想在该博客中创建一个部分,其中包含我上传到我的计算机上特定文件夹的所有文件。因此,每当我在那里更改任何文件时,它都会自动更改那里。这可能吗?
还有一种方法可以仅将我的 wordpress 网站的读取权限授予具有用户名和密码的人吗?
我正在使用 Linux Ubuntu 12.04
我们开始吧,以插件的形式 :)
媒体子菜单增加了功能add_media_page()
。
正在读取的文件夹是wp-content/custom/
使用WordPress 常量 WP_CONTENT_*
。如果您没有修改它们,它们会指向默认的内容目录。
调整 和 的$baseDir
值$baseUrl
。
创建一个新的PHP文件,粘贴代码,放入你的插件文件夹,激活
<?php
/*
Plugin Name: List Files in Custom Folder
Plugin URI: https://stackoverflow.com/q/13416177/1287812
Description: Add a Media page where the contents of a custom folder are listed as "<a>Filename</a> - Size"
Author: Rodolfo Buaiz
Author URI: http://wordpress.stackexchange.com/users/12615/brasofilo
Version: 1.0
License: GPL
*/
add_action( 'admin_menu', 'so_13416177_folder_menu' );
function so_13416177_folder_menu()
{
add_media_page(
'Custom Folder Media',
'Custom Folder',
'delete_plugins',
'so-13416177',
'so_13416177_display_page'
);
}
function so_13416177_display_page()
{
$baseDir = WP_CONTENT_DIR . '/custom';
$baseUrl = WP_CONTENT_URL . '/custom/';
$files = array();
if ( $dir = opendir( $baseDir ) )
{
while ( $file = readdir( $dir ) )
{
if ( $file != "." && $file != '..' )
{
if ( !is_dir( $baseDir . "/" . $file ) )
{
// Hide files that start with a dot
if( !so_834303_starts_with( $file, '.' ) )
{
$size = so_13416177_file_size(
filesize( $baseDir . "/" . $file )
);
$files[] = array( $file, $size );
}
}
}
}
closedir($dir);
}
?><div id="icon-upload" class="icon32"></div><h2>Custom Folder</h2><?php
if ( empty( $files ) )
{
echo '<p>No files!</p>';
break;
}
?>
<table class="widefat">
<thead>
<tr>
<th>File</th>
<th>Size</th>
</tr>
</thead>
<tfoot>
<tr>
<th>File</th>
<th>Size</th>
</tr>
</tfoot>
<tbody>
<?php
foreach ($files as $file)
{
?>
<tr>
<td>
<a href="<?php echo $baseUrl.$file[0]; ?>">
<?php echo $file[0]; ?>
</a>
</td>
<td><b><?php echo $file[1]; ?></b></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
// https://stackoverflow.com/q/834303
function so_834303_starts_with( $haystack, $needle )
{
return !strncmp( $haystack, $needle, strlen( $needle ) );
}
// http://www.php.net/manual/en/function.filesize.php#110739
function so_13416177_file_size( $o, $depth=0 )
{
if( $o > 1024 )
return so_13416177_file_size( $o/1024, $depth+1 );
$unit = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'PB', 'ZB', 'YB' );
return sprintf( '%.01f %s', $o, $unit[$depth] );
}
要为用户提供只读权限,请将其角色设置为Subscriber
。