本篇文章给大家谈谈将参数传递给WordPress中的短代码函数,以及web传参的知识点,同时本文还将给你拓展404将参数传递给go-chi中的URL时出错,即使参数已定义、c–将参数传递给“类似数组”
本篇文章给大家谈谈将参数传递给 WordPress 中的短代码函数,以及web传参的知识点,同时本文还将给你拓展404 将参数传递给 go-chi 中的 URL 时出错,即使参数已定义、c – 将参数传递给“类似数组”的容器构造函数、Django 将参数传递给 Formset、Excel Power Query:将参数传递给 oDataFeed URL 引发错误等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- 将参数传递给 WordPress 中的短代码函数(web传参)
- 404 将参数传递给 go-chi 中的 URL 时出错,即使参数已定义
- c – 将参数传递给“类似数组”的容器构造函数
- Django 将参数传递给 Formset
- Excel Power Query:将参数传递给 oDataFeed URL 引发错误
将参数传递给 WordPress 中的短代码函数(web传参)
如何解决将参数传递给 WordPress 中的短代码函数
我在function.PHP中开发了一个短代码函数。我想要做的是将参数传递给该短代码函数,以便它使用该参数根据某些查询从数据库中获取数据。我只想知道如何传递参数。就像我在 wordpress 页面上使用过短代码一样。
如何将页面名称或静态文本参数传递给 PHP 中的短代码函数?目前我正在使用静态参数获取数据。
我的短码功能是:
function db_short() {
global $wpdb;
$result = $wpdb->get_results ( "SELECT * FROM interestclass where Subject=''Bakery,Pastory & Cookies'' " );
}
add_shortcode( ''show_db_info'',''db_short'' );
解决方法
/* you must change your code to pass agrument in shortcode & fetch same argument in you function code like below */
/* **shortcode** */
[show_db_info name="text here"]
/* **function code** */
function db_short($atts) {
$name = ($attr[''name'']!='''' ? $attr[''name''] : ''default value here if blank'') ;
global $wpdb;
$result = $wpdb->get_results ( "SELECT * FROM interestclass where Subject=''Bakery,Pastory & Cookies'' " );
}
add_shortcode( ''show_db_info'',''db_short'' );
404 将参数传递给 go-chi 中的 URL 时出错,即使参数已定义
如何解决404 将参数传递给 go-chi 中的 URL 时出错,即使参数已定义
我想从我的前端获取限制和偏移值。为此,我编写了以下路由路径
func (s *Server) stockRoutes() {
s.r.Route("/stock",func(r chi.Router) {
r.Get("/{limit}{offset}",s.ListStocks(s.ctx))
r.Route("/{id}",func(r chi.Router) {
r.Get("/",s.GetStock(s.ctx))
r.Put("/",s.UpdateStockDetails(s.ctx))
})
})
}
我正在以下列方式处理请求。我正在解析 limit 和 offset 的值
func (s *Server) ListStocks(ctx context.Context) http.HandlerFunc {
return func(rw http.ResponseWriter,r *http.Request) {
param,_ := strconv.Atoi(chi.URLParam(r,"limit"))
param2,"offset"))
limit := int32(param)
offset := int32(param2)
arg := db.ListStocksParams{
Limit: limit,Offset: offset,}
stocks,err := s.store.ListStocks(ctx,arg)
if err != nil {
http.Error(rw,"error returning list of stocks",http.StatusInternalServerError)
return
}
log.Printf("%+v",stocks)
json.NewEncoder(rw).Encode(stocks)
}
}
使用邮递员,我通过以下方式发送请求 http://localhost:8000/stock?limit=5&offset=0
。
谁能帮我理解我做错了什么?
c – 将参数传递给“类似数组”的容器构造函数
我正在使用嵌入式平台,但有以下限制:
>没有堆
>没有Boost库
>支持C 11
我过去曾经多次处理过以下问题:
Create an array of class type T,where T has no default constructor
该项目最近才增加了C 11支持,到目前为止,每次我必须处理这个问题时,我一直在使用临时解决方案.既然C 11可用,我想我会尝试制定一个更通用的解决方案.
解决方案尝试
我复制了an example of std::aligned_storage来为我的数组类型提出框架.结果如下:
#include <type_traits> template<class T,size_t N> class Array { // Provide aligned storage for N objects of type T typename std::aligned_storage<sizeof(T),alignof(T)>::type data[N]; public: // Build N objects of type T in the aligned storage using default CTORs Array() { for(auto index = 0; index < N; ++index) new(data + index) T(); } const T& operator[](size_t pos) const { return *reinterpret_cast<const T*>(data + pos); } // Other methods consistent with std::array API go here };
这是一种基本类型 – 阵列< T,N>如果T是默认可构造的,则仅编译.我对模板参数打包不是很熟悉,但是看一些例子让我得到以下结论:
template<typename ...Args> Array(Args&&... args) { for(auto index = 0; index < N; ++index) new(data + index) T(args...); }
这绝对是朝着正确方向迈出的一步.阵列< T,N>现在编译,如果传递的参数匹配T的构造函数.
我唯一剩下的问题是构造一个数组< T,N>其中数组中的不同元素具有不同的构造函数参数.我想我可以把它分成两种情况:
1 – 用户指定参数
这是我对CTOR的抨击:
template<typename U> Array(std::initializer_list<U> initializers) { // Need to handle mismatch in size between arg and array size_t index = 0; for(auto arg : initializers) { new(data + index) T(arg); index++; } }
除了需要处理数组和初始化列表之间的维度不匹配之外,这似乎工作正常,但有许多方法可以处理那些不重要的方法.这是一个例子:
struct Foo { explicit Foo(int i) {} }; void bar() { // foos[0] == Foo(0) // foos[1] == Foo(1) // ..etc Array<Foo,10> foos {0,1,2,3,4,5,6,7,8,9}; }
2 – 参数遵循模式
在我之前的示例中,foos使用递增列表进行初始化,类似于std :: iota.理想情况下,我想支持以下内容,其中range(int)返回可以初始化数组的SOMETHING.
// One of these should initialize foos with parameters returned by range(10) Array<Foo,10> foosA = range(10); Array<Foo,10> foosB {range(10)}; Array<Foo,10> foosC = {range(10)}; Array<Foo,10> foosD(range(10));
谷歌搜索告诉我std :: initializer_list不是一个“普通”容器,所以我认为我没有办法让range(int)根据函数参数返回一个std :: initializer_list.
同样,这里有几个选项:
>在运行时指定的参数(函数返回?)
>在编译时指定的参数(constexpr函数返回?模板?)
问题
>到目前为止,此解决方案是否存在任何问题?
>有没有人建议生成构造函数参数?除了硬编码std :: initializer_list之外,我无法在运行时或编译时想到解决方案,因此欢迎任何想法.
解决方法
这是完全灵活的解决方案:
>适用于固定尺寸和动态尺寸的容器
>可以将不同或相同的参数传递给元素构造函数
>可以使用一个或多个(元组分段构造)参数调用构造函数,甚至可以调用不同元素的不同构造函数(具有控制反转)
对于你的例子,它将是:
const size_t SIZE = 10; std::array<int,SIZE> params; for (size_t c = 0; c < SIZE; c++) { params[c] = c; } Array<Foo,SIZE> foos(iterator_construct,¶ms[0]); //iterator_construct is a special tag to call specific constructor // also,we are able to pass a pointer as iterator,since it has both increment and dereference operators
注意:您可以通过使用自定义迭代器类完全跳过参数数组分配,该类从动态位置计算它的值.
对于多参数构造函数,它将是:
const size_t SIZE = 10; std::array<std::tuple<int,float>,SIZE> params; // will call Foo(int,float) for (size_t c = 0; c < SIZE; c++) { params[c] = std::make_tuple(c,1.0f); } Array<Foo,piecewise_construct,¶ms[0]);
具体的实现示例是一个很大的代码,所以如果你想了解除了一般想法之外的实现细节的更多见解,请告诉我 – 我会更新我的答案.
Django 将参数传递给 Formset
如何解决Django 将参数传递给 Formset
我想创建一个表单集,其中每个表单都有一个下拉列表,指向一组为证书添加额外字段。
我今天发现自己处于同样的情况。在这里我为表单创建了一个方法。 在这里,我为表单创建了一个方法。 它仍然需要设置查询集
form.py ---
def create_certificate_form(id_certificate):
class CertificateAdditionalFieldForm(forms.ModelForm):
class Meta:
model = CertificateAdditionalField
fields = [
''certificate_title'',''no'',''component_activities'',''text'',]
def __init__(self,*args,**kwargs):
super(CertificateAdditionalFieldForm,self).__init__(*args,**kwargs)
self.fields[''certificate_title''].queryset
= CertificateAdditionalTitle.objects.filter(
is_deleted=False,certificate_id=id_certificate)
self.fields[''certificate_title''].required = True
return CertificateAdditionalFieldForm
view.py 代码 -- 在 view.py 我创建调用方法并创建新表单
def createCertificateField(request,certificate_pk):
template_name = "contract/final/experience_certificate_TitleAndOtherField.html"
certificate = ExperienceCertificate.objects.get(pk=certificate_pk)
title = CertificateAdditionalTitle.objects.filter(certificate_id=certificate_pk)
CertificateAdditionalFieldForm = create_certificate_form(certificate_pk)
CertificateAdditionalFieldFormset = formset_factory(
CertificateAdditionalFieldForm,extra=1
)
if request.method == ''GET'':
formset = CertificateAdditionalFieldFormset()
elif request.method == ''POST'':
formset = CertificateAdditionalFieldFormset(data=request.POST)
if formset.is_valid():
try:
with transaction.atomic():
for form in formset:
set_save = form.save(commit=False)
set_save.created_user = request.user
set_save.save()
messages.success(request,"Filed Successfully Add")
logger.debug(f"Filed Successfully Add {formset}")
return redirect(''experience_certificate'',pk=certificate.pk)
except IntegrityError:
print("Cant save")
data = {
''formset'': formset,''title'': title,}
return render(request,template_name,data)
Excel Power Query:将参数传递给 oDataFeed URL 引发错误
如何解决Excel Power Query:将参数传递给 oDataFeed URL 引发错误
当给出 TestPlanID 的直接号码时,它就起作用了。 将值从工作表传递给查询,然后将其附加到 URL 时会引发错误。
Expression.Error: We cannot apply operator & to types Text and Number.
Details:
Operator=&
Left=https://analytics.dev.azure.com/OrgName/ProjName/_odata/v3.0-preview/TestPoints?$apply=filter((TestSuite/TestPlanId eq
Right=39128
解决方法
你可以试试吗
eq"""&varTPID&"""
如果 varTPID
的值是整数/小数,您能否将 power query
中的第一行更改为 varTPID=Text.From(varTestPlanID)
,然后使用 eq"""&varTPID&"""
我也认为,TestPoints?"&"$apply
需要改为 TestPoints?$apply
今天的关于将参数传递给 WordPress 中的短代码函数和web传参的分享已经结束,谢谢您的关注,如果想了解更多关于404 将参数传递给 go-chi 中的 URL 时出错,即使参数已定义、c – 将参数传递给“类似数组”的容器构造函数、Django 将参数传递给 Formset、Excel Power Query:将参数传递给 oDataFeed URL 引发错误的相关知识,请在本站进行查询。
本文标签: