It’s great for SVGs that you don’t want to dump all that code text onto your code layout. Keeps things clean.
<?
function custom_content_menu() {
add_menu_page('Custom Content', 'Custom Content', 'manage_options', 'content','top_level_content');
}
function cc_lower_with_underscores($string) {
$string = strtolower ( $string );
$string = str_replace(' ', '_', $string); // Replaces all spaces with hyphens.
return preg_replace('/[^A-Za-z0-9\_]/', '', $string); // Removes special chars.
}
function top_level_content() { //844AM
if(isset($_POST['has_submitted_custom_content'])) { //117PM
if (!wp_verify_nonce( $_POST['custom_content_nonce'], 'process_custom_content' )) { exit; }
$custom_content_name = cc_lower_with_underscores($_POST['custom_content_name']);
$custom_content_field_type = $_POST['custom_content_field_type'];
$custom_content_data = $_POST['custom_content_data'];
$custom_content_link = $_POST['custom_content_link'];
$data['custom_content_field_type'] = $custom_content_field_type;
$data['custom_content_data'] = $custom_content_data;
$data['custom_content_link'] = $custom_content_link;
$all_custom_content = get_option('custom_content');
if ($custom_content_field_type == "image" && !empty($_FILES["uploaded_image"]["name"])) {
$uploaded_file = $_FILES["uploaded_image"];
$listing_id = $_FILES["uploaded_image"];
if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploaded_file, $upload_overrides );
if ( $movefile ) {
$return['status'] = "good";
} else {
$return['status'] = "bad";
}
$data['custom_content_data'] = $movefile['url'];
}
if ( !empty($custom_content_name) && !empty($custom_content_field_type)) { $all_custom_content[$custom_content_name] = $data ; }
if ($_POST['delete_content'] == "yes") { //117PM
unset($all_custom_content[$custom_content_name]);
} //117PM
update_option( 'custom_content', $all_custom_content );
}//117PM
$all_custom_content = get_option('custom_content');
?>
<style>
.custom_content_form label {
display: block;
}
.custom_content_form input{
width :300px;
padding: 5px;
margin-bottom: 10px;
}
.custom_content_form textarea{
width :500px;
height :350px;
padding: 5px;
margin-bottom: 10px;
}
.content_submit {
cursor:pointer;
width: auto !important;
display: inline-block;
border: 1px solid #000000;
border-radius: 6px;
}
.custom_content_form {
background-color: #C9C7C7;
padding: 15px;
margin-bottom: 15px;
}
.delete_content {
width: auto !important;
}
.delete_content_wrap {
display: inline-block;
margin-left: 340px;
}
.custom_content_form h2 span {
font-size: 12px;
display: inline-block;
margin-left: 300px;
}
.custom_content_form .long_text {
width: 80%;
}
.custom_content_form .short_text {
width: 20%;
}
.file_image_wrap img {
max-height: 200px;
}
.image_link_spacer {
display: inline-block;
width: 302px;
height: 20px;
}
</style>
<h1>Custom Content</h1>
<form class="custom_content_form" method="post" enctype="multipart/form-data">
<h2>New content</h2>
<label>Content Name</label>
<input type="text" name="custom_content_name" class="content_name_input" value=""/>
<label>Content Data Type</label>
<select name="custom_content_field_type">
<option value="textarea">textarea</option>
<option value="long text">long text</option>
<option value="small text">small text</option>
<option value="image">image</option>
</select>
<? wp_nonce_field( 'process_custom_content', 'custom_content_nonce' ); ?>
<input type="submit" class="content_submit" value="Submit" />
<input type="hidden" name="has_submitted_custom_content" id="custom_content_submitted" value="true" />
</form>
<? if (!empty($all_custom_content)) { foreach ($all_custom_content as $content_name => $custom_content_data) { //434PM ?>
<? $custom_content = $custom_content_data['custom_content_data']; ?>
<? $custom_content_link = $custom_content_data['custom_content_link']; ?>
<? $field_type = $custom_content_data['custom_content_field_type']; ?>
<form class="custom_content_form" method="post" enctype="multipart/form-data">
<h2><? echo $content_name; ?> <span> [content name="<? echo $content_name; ?>"]</span> </h2>
<input type="hidden" name="custom_content_name" class="content_name_input" value="<? echo $content_name; ?>"/>
<label>Content Data Type</label>
<select name="custom_content_field_type">
<option value="<? echo $field_type; ?>"><? echo $field_type; ?></option>
<option value="textarea">textarea</option>
<option value="long text">long text</option>
<option value="small text">small text</option>
<option value="image">image</option>
</select>
<label>Content Data</label>
<? if ($field_type == "textarea") { ?>
<textarea name="custom_content_data" class="content_textarea"><? echo stripslashes($custom_content); ?></textarea> <br />
<? } ?>
<? if ($field_type == "small text") { ?>
<? $custom_content = stripslashes($custom_content); ?>
<? $custom_content = htmlentities($custom_content); ?>
<input type="text" name="custom_content_data" class="small_text" value="<? echo $custom_content; ?>" /> <br />
<? } ?>
<? if ($field_type == "long text") { ?>
<? $custom_content = stripslashes($custom_content); ?>
<? $custom_content = htmlentities($custom_content); ?>
<input type="text" name="custom_content_data" class="long_text" value="<? echo $custom_content; ?>" /> <br />
<? } ?>
<? if ($field_type == "image") { ?>
<input type="file" name="uploaded_image" />
<input type="text" name="custom_content_data" class="long_text" value="<? echo stripslashes($custom_content); ?>" /> <br />
<? if (!empty($custom_content)) { ?>
<div class="file_image_wrap"><a href="<? echo stripslashes($custom_content); ?>" target="_blank"><img src="<? echo stripslashes($custom_content); ?>" /></a></div>
<? } ?>
<div class="image_link_spacer"></div>
<input type="text" name="custom_content_link" class="long_text image_link" value="<? echo stripslashes($custom_content_link); ?>" placeholder="IMAGE LINK"/> <br />
<? } ?>
<? wp_nonce_field( 'process_custom_content', 'custom_content_nonce' ); ?>
<input type="submit" class="content_submit" value="Submit" />
<div class="delete_content_wrap"><input type="checkbox" class="delete_content" name="delete_content" value="yes" /><span>DELETE content</span></div>
<input type="hidden" name="has_submitted_custom_content" id="custom_content_submitted" value="true" />
</form>
<? } } //434PM
} //844AM
add_action('admin_menu', 'custom_content_menu');
function custom_content_shortcode( $atts ){
extract( shortcode_atts( array(
'name' => '',
'display_image' => false,
), $atts ) );
$all_custom_content = get_option('custom_content');
if (!empty($all_custom_content[$name]['custom_content_link'])) { $content .= "<a href='".$all_custom_content[$name]['custom_content_link']."'>"; }
if ($display_image == true && !empty($all_custom_content[$name]['custom_content_data'])) {
$image_url = stripslashes($all_custom_content[$name]['custom_content_data']);
$content .= "<img src='$image_url' />";
}else{
$content .= stripslashes($all_custom_content[$name]['custom_content_data']);
}
if (!empty($all_custom_content[$name]['custom_content_link'])) { $content .= "</a>"; }
return $content;
}
add_shortcode( 'content', 'custom_content_shortcode' );