如何根据用户输入的元框创建菜单项

时间:2013-04-21 作者:user1632018

我已经创建了一个元框,它采用用户可以提供的名称作为其帖子的附加名称。我想知道如何根据用户输入到元数据库中的名称自动创建菜单项,并将url设置为#PostName?

即使有人可以指导我从post屏幕上的metabox创建菜单项的正确方向,我也可以理解其余的内容。

EDIT: 我已经添加了一些额外的信息,因为我知道这似乎有点困惑的人谁知道我为什么要这个想法。

我正在用html5样板创建一个自定义主题。这是一个单页主题,用户通过添加帖子向页面添加部分。其原理是,用户将自定义名称添加到页面上的元框中,然后添加具有该名称的菜单项。由于我创建的元框已经在每个帖子的html中添加了一个ID和一个额外的ID标记,因此菜单的url将是#PostName。这样,当用户单击菜单项时,它将自动向右滚动到该部分。

在大多数主题中,导航菜单会将您带到不同的页面。由于我的主题只有一个页面主题,导航链接会将用户带到页面上的部分。我所要做的就是在主题中添加一些自动化,这样用户就不需要手动添加菜单项。

1 个回复
SO网友:montrealist

下面是我对这项任务的理解:获取帖子(您可以通过向查询中添加额外参数来以任何方式塑造它),对于每个帖子,获取其元框值(用您的键替换键),如果找到值,则将其添加到菜单的HTML中。

Note: 代码没有经过测试,它只是一个大纲。

$html = \'\';
$domain = \'your-domain\'; // http://codex.wordpress.org/Function_Reference/_e
$meta_key = \'your-meta-key\'; // TODO replace value with yours

$post_menu_items = get_posts( array(
    \'post_type\'     =>  \'post\',
    \'post_status\'   =>  array( \'publish\' ),
    \'numberposts\'   =>  -1
) );

if($post_menu_items){
    $html .= \'<ul>\';
    foreach ($post_menu_items as $key => $menu_item) {
        $meta_title = get_post_meta($menu_item->ID, $meta_key, true);
        if(!empty($current_meta)){
            $html .=\'<li><a href="#\' . $meta_title . \'">\' . $menu_item->post_title . \'</a></li>\';
        }
    }
    $html = \'</ul>\';
} else {
    _e(\'No posts found.\', $domain);
}
echo $html;
想想看,你甚至可以避免get_post_meta 通过提供meta_key 参数输入到get_posts. 欢迎你尝试一下。

结束

相关推荐

从admin-ajax.php调用admin-ajax.php

我正在编写一个插件,它调用另一个插件的ajax的输出,设置在wp_ajax_我会直接调用这些函数,但插件中的限制使其成为非选项。要明确的是,发生了这样的事情:用户选择一个动作,然后点击apply,我的插件函数在admin ajax中调用。php(通过wp_ajax_ 钩子)插件函数创建一个非编码url,如下所示:$url = wp_nonce_url( admin_url( \'admin-ajax.php?action=plugin_action&post_id=\' . $post_id),