Shortcode Placeholder Plugin

时间:2015-09-22 作者:Álvaro N. Franz

Scenario:

编辑预构建的模板。有些东西在模板中是纯HTML的,我无法通过管理面板添加。例如:在特定点嵌入youtube视频。

Question:

是否有任何插件允许我通过短代码创建参数,然后从Wordpress管理面板为这些参数赋值?

示例:
主题HTML内部:[PARAM youtubehome]
在控制面板中:“参数输入youtubename:\\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu”

这样我就可以编辑所有这些参数,而无需再次编辑代码?

感谢您的时间:)

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

当然您需要两件事—设置页面和自定义短代码处理程序。第一个有点过于宽泛,无法在这里详细讨论,但是this tutorial 应该有助于你开始。您还可以check out the codex, 如果你真的被卡住了,也可以在这里发回一个新问题。

现在来看短代码:

function wpse_203387_param_shortcode( $atts ) {
    // [PARAM name="data"], $atts will be an array of name => data pairs
    // [PARAM data], $atts will be a numeric array with one element, "data"

    // In this case, we just always grab the first value/data
    $name = array_shift( $atts );

    switch ( strtolower( $name ) ) {
        case \'youtubehome\' : // [PARAM youtubehome]
            $data = get_option( \'theme_options\' ); // This is purely for example, use the data structure/names that match your settings API config

            return $data[\'youtube_setting\'];

        case \'anotherparam\' : // [PARAM anotherparam]
            return \'something_else\';
    }
}

add_shortcode( \'PARAM\', \'wpse_203387_param_shortcode\' );
Update: 要允许其他角色(功能)更新您的设置,请执行以下操作:

function wpse_203387_options_page_capability( $capability ) {
    return \'edit_theme_options\';
}

add_filter( \'option_page_capability_my-theme-settings-name\', \'wpse_203387_options_page_capability\' );