(Moderators note: 标题最初是“如何将“页面属性”和/或“页面属性>模板”选择器添加到帖子编辑器”)
WP目前只允许将“模板”分配给页面(即。post_type==\'page\'
.) 我还想将此功能扩展到帖子(即。post_type==\'post\'
.)
如何将“页面属性”元框以及更具体地说,模板切换器添加到帖子编辑器中?
我假设这是我将在functions.php
对于我的主题。
更新:我成功地将硬编码模板下拉菜单添加到我的帖子编辑器中,只需将选择框html添加到我现有的自定义元选项框中。这是我使用的代码。。。
add_meta_box(\'categorydiv2\', __(\'Post Options\'), \'post_categories_meta_box_modified\', \'post\', \'side\', \'high\');
下面是写出选项和模板选择框的函数。。。
//adds the custom categories box
function post_categories_meta_box_modified() {
global $post;
if( get_post_meta($post->ID, \'_noindex\', true) ) $noindexChecked = " checked=\'checked\'";
if( get_post_meta($post->ID, \'_nofollow\', true) ) $nofollowChecked = " checked=\'checked\'";
?>
<div id="categories-all" class="ui-tabs-panel">
<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
<li id=\'noIndex\' class="popular-category"><label class="selectit"><input value="noIndex" type="checkbox" name="chk_noIndex" id="chk_noIndex"<?php echo $noindexChecked ?> /> noindex</label></li>
<li id=\'noFollow\' class="popular-category"><label class="selectit"><input value="noFollow" type="checkbox" name="chk_noFollow" id="chk_noFollow"<?php echo $nofollowChecked ?> /> nofollow</label></li>
</ul>
<p><strong>Template</strong></p>
<label class="screen-reader-text" for="page_template">Post Template</label><select name="page_template" id="page_template">
<option value=\'default\'>Default Template</option>
<option value=\'template-wide.php\' >No Sidebar</option>
<option value=\'template-salespage.php\' >Salespage</option>
</select>
</div>
<?php
}
最后,在保存时捕获选定值的代码。。。
function save_post_categories_meta($post_id) {
if ( defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE ) return $post_id;
$noIndex = $_POST[\'chk_noIndex\'];
$noFollow = $_POST[\'chk_noFollow\'];
update_post_meta( $post_id, \'_noindex\', $noIndex );
update_post_meta( $post_id, \'_nofollow\', $noFollow );
return $post_id;
}
现在,我相信剩下的就是(1)捕获所选模板并将其添加到该帖子的帖子元中,(2)修改索引。php和single。php,以便使用所选模板。
SO网友:Jay
Wordpress允许您使用插件向类别添加元:
要做到这一点,您需要添加各种扩展中的一种,将meta添加到类别中(模拟页面从框中取出的内容),Simple Term Meta 工作做得很好。
N、 B.WordPress 3。扩展类别需要x。
之后,您可以使用:
添加\\u term\\u meta使用函数更新\\u term\\u meta。php添加方法来做你想做的事情,例如。
add_action(\'category_add_form_fields\', \'category_metabox_add\', 10, 1);
function category_metabox_add($tag) { ?>
<div class="form-field">
<label for="image-url"><?php _e(\'Image URL\') ?></label>
<input name="image-url" id="image-url" type="text" value="" size="40" aria-required="true" />
<p class="description"><?php _e(\'This image will be the thumbnail shown on the category page.\'); ?></p>
</div>
<?php }
add_action(\'created_category\', \'save_category_metadata\', 10, 1);
function save_category_metadata($term_id)
{
if (isset($_POST[\'image-url\']))
update_term_meta( $term_id, \'image-url\', $_POST[\'image-url\']);
}
在主题中调用新字段很容易:
<?php echo get_term_meta(get_query_var(\'cat\'), \'image-url\', true); ?>
更多详细信息和示例:
http://www.wphub.com/adding-metadata-taxonomy-terms/